webentwicklung-frage-antwort-db.com.de

Was ist der offizielle "bevorzugte" Weg, um pip und virtualenv systemweit zu installieren?

Ist es das, was die Leute anscheinend am häufigsten empfehlen:

$ Sudo apt-get install python-setuptools
$ Sudo easy_install pip
$ Sudo pip install virtualenv

Oder das, was ich von http://www.pip-installer.org/en/latest/installing.html bekommen habe:

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...

Oder was ganz anderes?

86
coffee-grinder

Wenn Sie die neueste Version installieren können Python (2.7.9 und höher) Pip ist jetzt im Lieferumfang enthalten. Siehe: https://docs.python.org/2.7//installing) /index.html
Wenn nicht :
Update (aus den Release Notes):

Ab Version 1.5.1 benötigt pip keine setuptools, bevor get-pip.py ausgeführt wird. Wenn setuptools (oder distribute) noch nicht installiert ist, installiert get-pip.py setuptools für Sie.

Ich laufe jetzt regelmäßig:

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | Sudo python

Hier sind die offiziellen Installationsanweisungen: http://pip.readthedocs.org/en/latest/installing.html#install-pip

EDIT 25.07.2013:
Geänderte URL für die Installation von setuptools.

BEARBEITEN 10.02.2014:
Setuptools install entfernt (danke @Ciantic)

EDIT 26.06.2014:
URL erneut aktualisiert (danke @LarsH)

EDIT 1-Mar-2015:
Pip ist jetzt mit Python gebündelt

89
Tal Weiss

http://www.pip-installer.org/en/latest/installing.html ist wirklich die kanonische Antwort auf diese Frage.

Die systemweiten Anweisungen lauten insbesondere:

$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py

Der in der Frage angegebene Abschnitt ist die virtualenv -Anweisung und nicht die systemweite. Das easy_install Anweisungen gibt es schon länger, aber es ist nicht mehr nötig, dies so zu tun.

21
Richard Jones

Diese Antwort kommt von @webology auf Twitter:

$ Sudo apt-get install python-setuptools
$ Sudo easy_install pip
$ Sudo pip install --upgrade pip virtualenv virtualenvwrapper

Meine hinzugefügten Notizen:

  • Unter Mac/Windows (und Linux, wenn das Apt-Repo veraltet ist) ersetzen Sie den ersten Schritt durch das Herunterladen von Setuptools von http://pypi.python.org/pypi/setuptools
  • Unter Windows müssten Sie virtualenvwrapper im letzten Schritt weglassen und es irgendwie manuell installieren. Ich weiß nicht, ob es einen Weg gibt, dies ohne Cygwin zu tun, aber ich hoffe es.
16
coffee-grinder

Unter Ubuntu 12.04 hatte ich viel Glück mit dem Paketmanager:

Sudo apt-get install python-pip virtualenvwrapper
4
Jason McVetta

Mach das:

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
pip install virtualenv

Sehen

3
asmaier

Es gibt wirklich keine einzige "Antwort" auf diese Frage, aber es gibt definitiv einige hilfreiche Konzepte, die Ihnen helfen können, eine Entscheidung zu treffen.

Die erste Frage, die in Ihrem Anwendungsfall beantwortet werden muss, lautet "Möchte ich das System Python verwenden?". Wenn Sie Python) verwenden möchten, das mit Ihrem Betriebssystem verteilt wird, ist die Verwendung der apt-get-Installationsmethode möglicherweise in Ordnung. Abhängig von der Verteilungsmethode des Betriebssystems müssen Sie jedoch noch einige Fragen stellen Weitere Fragen, z. B. "Möchte ich mehrere Versionen dieses Pakets installieren?" Wenn die Antwort "Ja" lautet, ist es wahrscheinlich keine gute Idee, so etwas wie "apt. Dpkg" zu verwenden Es ist daher Sache des Paketverwalters, sicherzustellen, dass das Paket unter sehr geringen Voraussetzungen sicher installiert wird. Bei den meisten Debian-Paketen würde ich davon ausgehen (jemand kann mich hier gerne korrigieren), dass er das Paket einfach entpackt und bereitstellt ein Top-Level-Paket.

Angenommen, das Paket ist "virtualenv", dann erhalten Sie /usr/lib/python2.x/site-packages/virtualenv. Wenn Sie es mit easy_install Installieren, erhalten Sie so etwas wie /usr/lib/python2.x/site-packages/virtualenv.Egg-link, Das möglicherweise auf /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.Egg Verweist, das ein Verzeichnis oder ein gezipptes Ei sein kann. Pip macht etwas Ähnliches, obwohl es keine Eier verwendet und legt stattdessen das Paket der obersten Ebene direkt im Verzeichnis lib ab.

Ich bin vielleicht nicht auf dem richtigen Weg, aber der Punkt ist, dass jede Methode unterschiedliche Bedürfnisse berücksichtigt. Aus diesem Grund sind Tools wie virtualenv hilfreich, mit denen Sie Ihre Python) -Bibliotheken in einer Sandbox ablegen können, sodass Sie eine beliebige Kombination von Bibliotheken und Versionen erstellen können.

Setuptools erlaubt auch die Installation von Paketen als Multiversion, was bedeutet, dass kein singulärer mo dule_name.Egg-link Erstellt wurde. Um diese Pakete zu importieren, müssen Sie pkg_resources und die Funktion __import__ Verwenden.

Kehren Sie zu Ihrer ursprünglichen Frage zurück, wenn Sie mit dem System zufrieden sind python============================================================================== apt-get scheint völlig angemessen zu sein. Ein Wort der Vorsicht ist jedoch, dass, wenn Sie vorhaben, Ihre Distributionen auf Python zu aktualisieren, dies einen Ripple-Effekt durch Ihre virtuellen Envs haben kann, wenn Sie wieder auf Ihre System-Site-Pakete verlinken.

Ich sollte auch erwähnen, dass keine dieser Optionen von Natur aus besser ist als die anderen. Sie verfolgen einfach unterschiedliche Ansätze. Die Verwendung der Systemversion ist eine hervorragende Möglichkeit, um Python) - Anwendungen zu installieren, aber es kann sehr schwierig sein, sie mit Python zu entwickeln. Die einfache Installation und Einrichtung von Tools ist in einer Welt ohne Virtualisierung sehr praktisch Sie müssen verschiedene Versionen derselben Bibliothek verwenden, dann wird es auch ziemlich unhandlich. Pip und virtualenv verhalten sich wirklich eher wie eine virtuelle Maschine. Anstatt sich darum zu kümmern, Dinge nebeneinander zu installieren, erstellen Sie einfach eine ganz neue Umgebung Nach mehr als 30 Virtualenvs haben Sie möglicherweise ziemlich viel Speicherplatz verbraucht und Ihr Dateisystem überfüllt.

Wie Sie sehen, ist es bei den vielen Optionen schwierig zu sagen, welche Methode verwendet werden soll. Wenn Sie sich jedoch ein wenig mit Ihren Anwendungsfällen befassen, sollten Sie in der Lage sein, eine Methode zu finden, die funktioniert.

3
elarson

Es gibt keine bevorzugte Methode - alles hängt von Ihren Bedürfnissen ab. Häufig müssen auf dem System unterschiedliche Python Interpreter vorhanden sein, aus welchen Gründen auch immer. In diesem Fall müssen Sie das Zeug für jeden Interpreter einzeln installieren. Ansonsten ziehe ich es vor, das Zeug selbst zu installieren, anstatt es abhängig zu machen von vorgefertigten Sachen, die manchmal Probleme verursachen - aber das ist nur eine mögliche Option.

3
Andreas Jung

Ab Distributionspaketen können Sie entweder Folgendes verwenden:

Sudo apt-get install python-virtualenv

mit dem du virtuelle envs erstellen kannst, oder

Sudo apt-get install python{,3}-pip

hiermit können Sie beliebige Pakete in Ihrem Home-Verzeichnis installieren.

Wenn Sie an virtualenv gewöhnt sind, erhalten Sie mit dem ersten Befehl alles, was Sie benötigen (denken Sie daran, dass pip im Lieferumfang enthalten ist und in jeder von Ihnen erstellten virtuellen Umgebung installiert wird).

Wenn Sie nur Pakete installieren möchten, erhalten Sie mit dem zweiten Befehl das, was Sie benötigen. Verwenden Sie pip wie folgt:

pip install --user something

und etwas wie setzen

PATH=~/.local/bin:$PATH

in deinem ~/.bashrc.


Wenn Ihre Distribution uralt ist und Sie ihre Pakete überhaupt nicht verwenden möchten (außer wahrscheinlich Python selbst)), können Sie virtualenv entweder als Tarball oder als eigenständiges Skript herunterladen:

wget -O ~/bin/virtualenv https://raw.github.com/pypa/virtualenv/master/virtualenv.py
chmod +x ~/bin/virtualenv

Wenn Ihre Distribution eher auf dem neuesten Stand der Technik ist, verfügt Python3.3 über integrierte virtualenv-ähnliche Funktionen:

python3 -m venv ./venv

Dies läuft viel schneller, aber Setuptools und Pip sind nicht enthalten.

2
Tobu

@ericholscher sagt auf Twitter: "Die in den offiziellen Dokumenten .."

Es ist ein großartiger Punkt, Sie sollten tun, was in den Dokumenten steht.

Zitiert aus den offiziellen Installationsanweisungen für Pip unter http://www.pip-installer.org/en/latest/installing.html :

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...
2
coffee-grinder

Da virtualenvs standardmäßig pip enthalten, installiere ich pip fast nie global. Was ich mache sieht am Ende eher so aus:

$ Sudo apt-get install python-setuptools
$ curl -O http://python-distribute.org/distribute_setup.py
$ Sudo python distribute_setup.py
$ Sudo easy_install virtualenv

Ich fahre dann mit der Installation und Einrichtung von virtualenvwrapper nach meinen Wünschen fort und mache mich auf den Weg. es könnte sich auch lohnen, sich Jeremy Avnets virtualenv-burrito anzusehen:

https://github.com/brainsik/virtualenv-burrito

2
David Gouldin

Um pip auf einem Mac (osx) zu installieren, funktionierte der folgende Liner hervorragend für mich:

Sudo easy_install pip
2
Brad Parks

In Raspbian muss nicht einmal python2.7 Erwähnt werden. In der Tat ist dies der beste Weg, um pip if python version in weniger als 2.7.9 zu installieren.

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | Sudo python

Danke an @ tal-weiss

2
Hemant Kumar

Ich benutze get-pip und virtualenv-burrito, um all dies zu installieren. Nicht sicher, ob Python-Setuptools erforderlich sind.

# might be optional. I install as part of my standard ubuntu setup script
Sudo apt-get -y install python-setuptools

# install pip (using get-pip.py from pip contrib)
curl -O https://raw.github.com/pypa/pip/develop/contrib/get-pip.py && Sudo python get-pip.py

# one-line virtualenv and virtualenvwrapper using virtualenv-burrito
curl -s https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | bash
1
carl_kibler
1
coderanger

Unter Debian wäre dies der beste Weg

Sudo apt-get install python-pip

1
Yehonatan

Die erstere Methode ist in Ordnung. Das einzige Problem, das ich sehen kann, ist, dass Sie möglicherweise mit einer alten Version von setuptools enden (wenn das Apt-Repository nicht auf dem neuesten Stand gehalten wurde).

0
bradley.ayers