Ersetzt Conda die Notwendigkeit von virtualenv?
Ich vor kurzem entdeckt habe Conda nachdem ich Probleme bei der Installation von SciPy, die ausdrücklich auf einem Heroku-app, die ich entwickle.
Mit Conda Sie ein Umfeld zu schaffen, sehr ähnlich zu dem, was virtualenv tut. Meine Fragen sind:
- Wenn ich mit Conda wird es ersetzen die Notwendigkeit für virtualenv? Wenn nicht, wie kann ich die beiden zusammen? Installiere ich virtualenv in Conda, oder Conda in virtualenv?
- Brauche ich immer noch verwenden Sie pip? Wenn dem so ist, werde ich noch in der Lage sein, um Pakete zu installieren mit pip in einer isolierten Umgebung?
InformationsquelleAutor der Frage Johan | 2015-12-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Conda ersetzt virtualenv. Meiner Meinung nach ist es besser. Es ist nicht beschränkt auf Python, aber kann verwendet werden, für andere Sprachen auch. In meiner Erfahrung, es bietet eine viel glattere Erfahrung, vor allem für wissenschaftliche Pakete. Das erste mal bekam ich MayaVi richtig auf dem Mac installiert war mit
conda
.Können Sie immer noch
pip
. In der Tatconda
installiertpip
in jeder neuen Umgebung. Es kennt pip-Pakete installiert.Beispiel:
listet alle installierten Pakete in Ihrer aktuellen Umgebung.
Conda-installierte Pakete anzeigen wie diese:
sind, und diejenigen, installiert über
pip
wie diese:InformationsquelleAutor der Antwort Mike Müller
Kurze Antwort ist, Sie müssen nur conda.
Conda effektiv kombiniert die Funktionalität von pip und virtualenv in einem Paket, so dass Sie nicht brauchen virtualenv wenn Sie mit conda.
Würden Sie überrascht sein, wie viele Pakete conda unterstützt. Wenn es nicht reicht, können Sie mit pip unter conda.
Hier ist ein link zu der conda-Seite Vergleich von conda, pip und virtualenv: https://conda.io/docs/commands.html#conda-vs-pip-vs-virtualenv-commands.
InformationsquelleAutor der Antwort Mad Physicist
Will ich hinzufügen, dass erstellen und entfernen von conda Umgebungen ist einfach mit conda.
Diese Umgebungen sind stark gebunden an conda ist pip-like-Paket-managementso ist es einfach, ein Umfeld zu schaffen und zu installieren Python und nicht die Python-Pakete. Darüber hinaus, wie von Anaconda 4.1, nbextensions wurden Hinzugefügtdie Integration mit Jupyter notebooks, die Verbesserung der übersetzung zwischen reproduzierbaren Umgebungen und Arbeitsbedingungen, die Erzählungen.
Meiner Erfahrung, conda ist schneller und zuverlässiger bei der Installation von großen Bibliotheken, wie zum Beispiel
numpy
undpandas
.InformationsquelleAutor der Antwort pylang
Installation von Conda werden, ermöglichen Ihnen das erstellen und entfernen von python-Umgebungen, wie Sie wollen, deshalb bietet Ihnen die gleiche Funktionalität wie virtialenv würde.
Im Fall der beiden Distributionen, die Sie wäre in der Lage, erstellen Sie ein Isoliertes Dateisystem-Baum, wo Sie können installieren und entfernen von python-Paketen (wahrscheinlich mit pip), wie Sie wünschen. Die könnten, kommen in praktisch, wenn Sie verschiedene Versionen der gleichen library für verschiedene Anwendungsfälle oder Sie wollen einfach nur, um zu versuchen, einige Verteilung und entfernen Sie es danach schonen Sie Ihren Speicherplatz.
Unterschiede:
Lizenzvereinbarung. Während virtualenv kommt unter den meisten Liberalen MIT-LizenzConda verwendet 3-Klausel-BSD-Lizenz.
Conda bietet Ihnen mit Ihrer eigenen Paket-control-system. Dieses Paket control system oft bietet vorkompilierte Versionen (für die meisten gängigen Systeme) der beliebteste nicht-python-software, die einfach den Weg immer einige machine learning-Paketen arbeiten. Nämlich Sie nicht zu kompilieren, optimierter C/C++ - code für Ihr system. Es ist zwar eine große Erleichterung für die meisten von uns, hat dies möglicherweise Auswirkungen auf die performance solcher Bibliotheken.
Im Gegensatz zu virtualenv, Conda duplizieren einige system-Bibliotheken-zumindest auf dem Linux-system. Diese Bibliotheken können aus dem Takt geraten was zu einer inkonsistenten Verhalten Ihrer Programme.
Urteil:
Conda ist toll und sollte Ihr Standard-Wahl, während Sie beginnen Ihren Weg mit der Maschine lernen. Es sparen Sie einige Zeit messing mit gcc und zahlreiche Pakete. Doch, Conda nicht ersetzen virtualenv. Es stellt eine zusätzliche Komplexität, die möglicherweise nicht immer gewünscht. Es kommt unter anderer Lizenz. Möchten Sie vielleicht zu vermeiden, mit conda auf einem verteilten Umgebungen oder auf HPC-hardware.
InformationsquelleAutor der Antwort yauheni_selivonchyk
Eine weitere neue option und meine aktuelle bevorzugte Methode, sich eine Umgebung zum laufen Pipenv
Es ist das derzeit offiziell empfohlenen Python packaging tool aus Python.org
InformationsquelleAutor der Antwort Johan
Ja, conda ist viel einfacher zu installieren als virtualenv, und ziemlich viel ersetzt letztere.
InformationsquelleAutor der Antwort Liang Huang