Ich habe die Anaconda Python-Distribution installiert und verwendet , und ich habe begonnen, die Anaconda (Conda) -Umgebung zu verwenden. Ich kann den Standardbefehl verwenden conda install...
, um Pakete aus der Distribution in meine Umgebungen einzufügen, aber um alles außerhalb zu verwenden (z. B. Flask-WTF, Flask-SQLalchemy und Alembic), muss ich es pip install
in der aktiven Umgebung verwenden. Wenn ich mir jedoch den Inhalt der Umgebung ansehe, entweder im Verzeichnis oder wenn ich conda list
diese pip install
ed-Pakete verwende, wird dies nicht angezeigt.
Verwenden pip freeze
und listen Sie pip list
einfach jedes Paket auf, das ich jemals installiert habe.
Gibt es eine Möglichkeit, den Überblick darüber zu behalten, was sich in jedem meiner Anaconda env
(sowohl installiert pip
als auch conda
installiert) befindet?
pip
installiert mitconda
z~/anaconda/bin/pip
. Verwenden Sie diese Option, um Pakete in einerconda
Umgebung zu installierenpip
und die Vereinigung der mit dieser und mit installierten Pakete anzuzeigenconda install
.conda list
hat seitpython setup.py install
Antworten:
conda-env tut dies jetzt automatisch (wenn pip mit conda installiert wurde).
Sie können sehen, wie dies funktioniert, indem Sie das Export-Tool verwenden, das zum Migrieren einer Umgebung verwendet wird:
In der Datei werden sowohl Conda-Pakete als auch Pip-Pakete aufgelistet:
Wenn Sie den Export der Umgebung fortsetzen möchten, wechseln Sie
environment.yml
auf den neuen Hostcomputer und führen Sie Folgendes aus:quelle
conda
verfolgt nur die installierten Pakete. Undpip
Sie erhalten die Pakete, die entweder mit dempip
Installationsprogramm selbst installiert wurden oder diesetuptools
in ihremsetup.py
so conda-Build verwendet wurden, dass die Ei-Informationen generiert wurden. Sie haben also grundsätzlich drei Möglichkeiten.Sie können die Vereinigung der
conda list
undpip freeze
und Verwalten von Paketen, die mitconda
(die im angezeigt werden) installiert wurden, mitconda list
demconda
Paketmanager und denjenigen, die mitpip
(die angezeigt werden,pip freeze
aber nicht inconda list
) mit installiert wurden , übernehmenpip
.Installieren Sie in Ihrer Umgebung nur die
python
,pip
unddistribute
Pakete und verwalten Sie alles mitpip
. (Dies ist nicht so trivial, wenn Sie unter Windows sind ...)Erstellen Sie Ihre eigenen
conda
Pakete und verwalten Sie alles mitconda
.Ich würde persönlich die dritte Option empfehlen, da es sehr einfach ist,
conda
Pakete zu erstellen . Auf dem Github-Konto des Kontinuums befindet sich ein Git-Repository mit Beispielrezepten. Aber es läuft normalerweise darauf hinaus:oder nur:
Auch wenn Sie sie einmal erstellt haben, können Sie sie auf https://binstar.org/ hochladen und einfach von dort aus installieren.
Dann haben Sie alles mit verwaltet
conda
.quelle
~/anaconda/bin/pip install memory-profiler
undconda install numba
, und beide werden in gezeigt~/anaconda/bin/pip freeze
.conda install C:\...PACKAGE-0.0.0-py27_0.tar.bz2
wie in stackoverflow.com/a/20750388/125507conda install python=3.x.y
in Ihrer Conda-Umgebung, so dass nachfolgende Pip-Installationen durch Conda installierte Pip gehen.Es gibt einen Zweig von conda (new-pypi-install), der eine bessere Integration mit pip und PyPI ermöglicht. Insbesondere zeigt die Conda-Liste auch installierte Pip-Pakete an, und die Conda-Installation versucht zunächst, ein Conda-Paket zu finden. Andernfalls wird das Paket mithilfe von pip installiert.
Dieser Zweig soll später in dieser Woche zusammengeführt werden, damit Version 2.1 von conda eine bessere Pip-Integration mit conda bietet.
quelle
conda install package
ein Conda-Rezept zu finden, es versucht, es über zu installierenpip
(und es dann verfolgt). Es wird sogar empfohlen, die Installation zu installieren,pip
wenn sie sich nicht in Ihrer Umgebung befindet. Danke Travis für all deine Arbeit!conda install autopep8
wird "Kein Paket gefunden" angezeigt und ich sollte anaconda.org manuell durchsuchen.running pip...
funktioniert auch nicht, es wird überhaupt nicht nach Conda-Paket suchen.Ich folgte der Antwort von @Viktor Kerkez und hatte gemischten Erfolg. Ich fand das manchmal dieses Rezept von
würde so aussehen, als ob alles funktioniert hätte, aber ich konnte PACKAGE nicht erfolgreich importieren. Kürzlich habe ich in der Anaconda-Benutzergruppe danach gefragt und von @Travis Oliphant selbst gehört, wie man mit conda am besten Pakete erstellt und verwaltet, die nicht mit Anaconda geliefert werden. Sie können diesen Thread hier lesen , aber ich werde den folgenden Ansatz beschreiben, um hoffentlich die Antworten auf die Frage des OP vollständiger zu machen ...
Beispiel: Ich werde das ausgezeichnete Hüllplotlib-Paket unter Windows mit Conda 2.2.5 installieren.
1a)
conda build --build-recipe prettyplotlib
Sie werden sehen, dass die Build-Nachrichten bis zum letzten TEST-Abschnitt des Builds alle gut aussehen. Ich habe diesen Fehler gesehen
1b) Gehen Sie in / conda-Rezepte / Prettyplotlib und bearbeiten Sie die Datei meta.yaml. Gegenwärtig führen die Pakete, die wie in Schritt 1a eingerichtet werden, zu Yaml-Dateien, die einen Fehler in diesem
test
Abschnitt aufweisen. Hier ist zum Beispiel, wie meine gesucht hatprettyplotlib
Bearbeiten Sie diesen Abschnitt, um die leere Zeile vor dem - zu entfernen und die redundante Prettyplotlib-Zeile zu entfernen. Zum Zeitpunkt dieses Schreibens habe ich festgestellt, dass ich die meisten meta.yaml-Dateien wie diese für externe Pakete bearbeiten muss, die ich mit conda installiere. Dies bedeutet, dass eine leere Importzeile den Fehler verursacht und ein redundanter Import des angegebenen Pakets verursacht .
1c) Führen Sie den Befehl von 1a aus erneut aus, der diesmal ohne Fehler abgeschlossen sein sollte. Am Ende des Builds werden Sie gefragt, ob Sie den Build auf binstar hochladen möchten . Ich gab Nein ein und sah dann diese Nachricht:
Diese tar.bz2-Datei ist der Build, den Sie jetzt tatsächlich installieren müssen.
2)
conda install C:\Anaconda\conda-bld\win-64\prettyplotlib-0.1.3-py27_0.tar.bz2
Nach diesen Schritten habe ich conda erfolgreich verwendet, um eine Reihe von Paketen zu installieren, die nicht mit Anaconda geliefert werden. Zuvor hatte ich einige davon mit pip installiert, also
pip uninstall PACKAGE
vor der Installation von PACKAGE mit conda. Mit conda kann ich jetzt (fast) alle meine Pakete mit einem einzigen Ansatz verwalten, anstatt eine Mischung aus Dingen zu installieren, die mit conda, pip, easy_install und python setup.py installiert wurden.Für den Kontext denke ich, dass dieser kürzlich veröffentlichte Blog-Beitrag von @Travis Oliphant für Leute wie mich hilfreich sein wird, die nicht alles schätzen, was in robusten Python-Verpackungen steckt, aber sicherlich zu schätzen wissen, wenn Dinge "einfach funktionieren". conda scheint ein guter Weg nach vorne zu sein ...
quelle
Deshalb habe ich Picky geschrieben: http://picky.readthedocs.io/
Es ist ein Python-Paket, das Pakete verfolgt, die entweder mit pip oder conda in virtualenvs oder conda envs installiert wurden.
quelle
Ich denke, was hier fehlt, ist das, wenn Sie es tun:
Um ein lokales Paket mit einer setup.py zu installieren, wird ein Paket installiert, das für alle conda envs sichtbar ist , die dieselbe Python- Version verwenden . Hinweis Ich verwende die Conda-Version von Pip!
Wenn ich beispielsweise python2.7 verwende, wird das lokale Paket hier abgelegt:
/usr/local/anaconda/lib/python2.7/site-packages
Wenn ich dann später eine neue Conda-Umgebung mit Python = 2.7 (= Standard) erstelle:
Und dann mache:
Wenn ich es jedoch tue:
In diesem Fall kennt conda das pip-Paket nicht, aber das Paket steht Python zur Verfügung.
Wenn ich jedoch stattdessen das lokale Paket installiere (wieder mit pip), nachdem ich die neue conda env erstellt (und aktiviert) habe, sieht conda es jetzt :
Ich denke also, dass die Interaktion zwischen conda und pip einige Probleme hat - dh die Verwendung von pip zum Installieren eines lokalen Pakets aus einer conda env heraus macht dieses Paket für alle anderen conda envs derselben Python-Version verfügbar (aber nicht über die conda-Liste sichtbar).
quelle
conda env export
listet alle Conda- und Pip-Pakete in einer Umgebung auf.conda-env
muss in der conda root (conda install -c conda conda-env
) installiert sein .So schreiben Sie eine
environment.yml
Datei, die die aktuelle Umgebung beschreibt:Verweise:
quelle
Normalerweise stelle ich den Ordner 'bin / pip' der spezifischen Umgebung voran, in der Sie das Paket vor dem Befehl 'pip' installieren möchten. Wenn Sie beispielsweise pymc3 in der Umgebung py34 installieren möchten, sollten Sie diesen Befehl verwenden:
Sie müssen im Grunde nur den richtigen Pfad zu Ihrem Ordner 'bin / pip' finden und ihn vor den Installationsbefehl stellen.
quelle
Mein
which pip
zeigt den folgenden Pfad:Unabhängig davon, welches Paket ich verwende
pip install <package-name>
, muss es in der Liste der Pakete angezeigt werden, wenn die Liste exportiert wird mit:Aber ich nicht. Also habe ich stattdessen den folgenden Befehl verwendet, wie von mehreren anderen vorgeschlagen:
Jetzt kann ich alle Pakete in meiner
all-packages.yml
Datei sehen.quelle
Sie können beginnen, indem Sie den unten angegebenen Befehl in der Conda-Umgebung installieren:
conda install pip
Anschließend installieren Sie alle Pip-Pakete, die Sie in der Umgebung benötigen.
Nach der Installation aller Conda- und Pip-Pakete zum Exportieren der Umgebung verwenden Sie:
conda env export -n <env-name> > environment.yml
Dadurch wird die erforderliche Datei im Ordner erstellt
quelle