Ich bin ein Ruby-Programmierer, der versucht, Python zu lernen. Ich bin eine hübsche Familie mit pyenv, da es wie ein Kopieren und Einfügen von rbenv ist. Pyenv hilft dabei, mehr als eine Python-Version in einem System zu haben und die Python zu isolieren, ohne einen sensiblen Teil 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, diese virtuelle Umgebung und Anakonda zu verwenden. Ich kann sogar ein virtualenv Plugin für pyenv finden.
Jetzt bin ich verwirrt mit dem Zweck dieser beiden pyenv und virtualenv. schlimmer 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 dieser Pyenv Virutalenv?
Ihre Erklärung mit Beispiel wird sehr geschätzt.
Antworten:
Bearbeiten: Es ist auch hier erwähnenswert
pip
,conda
und espip
gibt Ähnlichkeiten und Unterschiede, die für dieses Thema relevant sind .pip: der Python Package Manager.
pip
das Python-Äquivalent des Ruby-gem
Befehls vorstellenpip
ist standardmäßig nicht in Python enthalten.brew install python
sudo easy_install pip
gemfile
pip freeze > requirements.txt
pyenv: Python-Versionsmanager
pyenv
können Sie dies einfach verwalten.virtualenv: Python Environment Manager.
virtualenv
, einfach aufrufenvirtualenv ENV
, woENV
ist ein Verzeichnis ist die neue virtuelle Umgebung zu platzieren.virtualenv
, müssen Siesource ENV/bin/activate
. Um die Verwendung zu beenden, rufen Sie einfach andeactivate
.virtualenv
, können Sie alle Paketanforderungen eines Arbeitsbereichs installieren, indem Sie es fürpip install -r
die Projektdateirequirements.txt
ausführen.Anaconda: Paketmanager + Umweltmanager + Zusätzliche wissenschaftliche Bibliotheken.
conda install <packagename>
miniconda
Version, die eine einfachere Option zu sein scheint als die Verwendung vonpip
+virtualenv
, obwohl ich keine Erfahrung mit der persönlichen Verwendung habe.conda
Sie Pakete installieren können, sind diese Pakete getrennt als PyPI Pakete, so dass Sie noch zusätzlich zu Verwendung pip müssen in Abhängigkeit von den Arten von Paketen müssen Sie installieren.Siehe auch:
quelle
Einfache Analogie:
Da ich Python3 verwende, bevorzuge ich die in Python3 integrierte virtuelle Umgebung namens venv . venv ist einfach und leicht zu bedienen. Ich würde Ihnen empfehlen, die offiziellen Dokumente zu lesen. Das Dokument ist kurz und prägnant.
In Ruby brauchen wir keine virtuelle Umgebung, weil der Bundler sich darum kümmert. Sowohl Virtual Env als auch Bundler sind großartig, aber sie haben unterschiedliche Konzepte, aber sie versuchen, dasselbe Problem zu lösen.
quelle