it-swarm.com.de

Was ist der Unterschied zwischen pyenv, virtualenv, anaconda?

Ich bin ein Ruby Programmierer, der versucht, Python zu lernen. Ich bin eine hübsche Familie mit pyenv, da es wie das Kopieren und Einfügen von rbenv ist. Pyenv hilft dabei, mehr als eine Version von python in einem System zu haben und auch das python zu isolieren, ohne sensible Teile des Systems zu berühren.

Ich nehme an, dass jede python -Installation mit einem Pip-Paket geliefert wird. Was ich immer noch nicht verstehe, ist, dass es viele gute python Bibliotheken gibt, die vorschlagen, dieses virtuelle Env und diese Anakonda zu verwenden. Ich kann sogar virtualenv plugin für pyenv finden.

Jetzt bin ich mit dem Zweck dieser beiden pyenv und virtualenv verwechselt. Schlimmer noch, in pyenv gibt es ein Virtualenv-Plugin.

meine fragen sind:

  • was ist der Unterschied zwischen pyenv und virtualenv?
  • Gibt es einen Unterschied bei der Verwendung des Befehls pip sowohl in pyenv als auch in virtualenv?
  • was macht dieses pyenv virutalenv?

ihre Erklärung mit Beispiel wird sehr geschätzt.

99
channa ly

Bearbeiten: Erwähnenswert ist auch hier pip, da conda und pip Ähnlichkeiten und Unterschiede aufweisen, die für dieses Thema relevant sind .

pip: der Python Package Manager.

  • Sie können sich pip als python Äquivalent zum Ruby gem - Befehl vorstellen
  • pip ist standardmäßig nicht in python enthalten.
  • Sie können Python mit homebrew installieren, wodurch pip automatisch installiert wird: brew install python
  • Die endgültige Version von OSX enthielt standardmäßig keinen Pip. Um pip zu der Python-Version Ihres Mac-Systems hinzuzufügen, können Sie Sudo easy_install pip
  • Sie können python Pakete mit PyPI: The Python Package Index finden und veröffentlichen
  • Die Datei requirements.txt ist vergleichbar mit der Datei Ruby gemfile
  • Um eine Anforderungstextdatei zu erstellen, pip freeze > requirements.txt
  • Beachten Sie, dass wir zu diesem Zeitpunkt python auf unserem System installiert haben und eine Datei requirements.txt erstellt haben, in der alle python -Pakete aufgeführt sind, die auf Ihrem System installiert wurden.

pyenv: Python Versionsmanager

  • Aus den Dokumenten : Mit pyenv können Sie problemlos zwischen mehreren Versionen von Python wechseln. Es ist einfach, unauffällig und folgt der UNIX-Tradition von Einzweck-Tools, die eine Sache gut machen. Dieses Projekt wurde von rbenv und Ruby-build gespalten und für Python modifiziert.
  • Viele Leute zögern Sie, python3 zu verwenden .
  • Wenn Sie verschiedene Versionen von Python verwenden müssen, können Sie dies mit pyenv problemlos verwalten.

virtualenv: Python Environment Manager.

  • Aus den Dokumenten : Das Grundproblem, das angesprochen wird, sind Abhängigkeiten und Versionen sowie indirekte Berechtigungen. Stellen Sie sich vor, Sie haben eine Anwendung, für die Version 1 von LibFoo erforderlich ist, für eine andere Anwendung jedoch Version 2. Wie können Sie beide Anwendungen verwenden? Wenn Sie alles in /usr/lib/python2.7/site-packages installieren (oder den Standardspeicherort Ihrer Plattform), kann es leicht vorkommen, dass Sie versehentlich eine Anwendung aktualisieren, die nicht aktualisiert werden sollte.
  • Um ein virtualenv zu erstellen, rufen Sie einfach virtualenv ENV Auf, wobei ENV ein Verzeichnis zum Platzieren der neuen virtuellen Umgebung ist.
  • Um das virtualenv zu initialisieren, müssen Sie source ENV/bin/activate. Um die Verwendung zu beenden, rufen Sie einfach deactivate auf.
  • Sobald Sie virtualenv aktiviert haben, können Sie alle Paketanforderungen eines Arbeitsbereichs installieren, indem Sie pip install -r Für die Datei requirements.txt Des Projekts ausführen.

Anaconda: Package Manager + Environment Manager + Zusätzliche wissenschaftliche Bibliotheken.

  • Aus den Dokumenten : Anaconda 4.2.0 enthält eine einfache Installation von Python (2.7.12, 3.4.5 und/oder 3.5.2) und Updates von über 100 vorgefertigten und getesteten wissenschaftlichen und analytischen Python Paketen, die NumPy, Pandas, SciPy, Matplotlib und IPython enthalten. Weitere 620 Pakete sind über einen einfachen conda install <packagename>
  • Als Webentwickler habe ich Anaconda nicht benutzt. Es ist ~ 3 GB einschließlich aller Pakete.
  • Es gibt eine abgespeckte miniconda -Version, die anscheinend einfacher sein könnte als die Verwendung von pip + virtualenv, obwohl ich keine persönlichen Erfahrungen damit habe.
  • Während conda die Installation von Paketen ermöglicht, handelt es sich bei diesen Paketen nicht um PyPI-Pakete. Abhängig von den zu installierenden Pakettypen müssen Sie daher möglicherweise noch zusätzlich pip verwenden.

Siehe auch:

108
Wade Williams