Wo installiert pip seine Pakete?

321

Ich habe eine virtuelle Umgebung aktiviert, auf der pip installiert ist. Ich tat

pip3 install Django==1.8

und Django erfolgreich heruntergeladen. Jetzt möchte ich den Django-Ordner öffnen. Wo befindet sich der Ordner? Normalerweise würde es in "Downloads" sein, aber ich bin nicht sicher, wo es wäre, wenn ich es mit pip in einer virtuellen Umgebung installieren würde.

user2719875
quelle
1
Kann das Verzeichnis, in dem Pakete installiert werden sollen, über CLI-Argumente, Umgebungsvariablen oder eine Konfigurationsdatei überschrieben werden?
John Carrell

Antworten:

107

pip installiert bei Verwendung mit virtualenv im Allgemeinen Pakete im Pfad <virtualenv_name>/lib/<python_ver>/site-packages.

Zum Beispiel habe ich mit Python 2.7 eine virtuelle Testversion mit dem Namen venv_test erstellt , und der Ordner befindet sich in .djangovenv_test/lib/python2.7/site-packages/django

Khampson
quelle
1
Manchmal kennen Sie den Namen / Pfad der virtuellen Umgebung möglicherweise nicht, z. B. bei der Verwendung mit von Jupyterhub / Binderhub erzeugten Ressourcen. Ich fand Art und Weise # 1 hier zu arbeiten , wenn pip shownichts getan hat. Kurz gesagt besteht es darin, die entsprechende Python-Konsole einzugeben und einzugeben help("module_name"), wobei sie module_namedurch den tatsächlichen Modulnamen ersetzt wird, an dem Sie interessiert sind. Sie können die installierten Module mit help("modules")in der Python-Konsole sehen.
Wayne
1
Auf welche Weise haben Sie Ihre virtuelle Umgebung erstellt? Ich verwende conda, um meine virtuelle Umgebung zu erstellen, während pip3 das Paket nicht in dem von Ihnen genannten Ordner installiert hat
cloudscomputes
Zu der Zeit (vor fast 4 Jahren) habe ich virtualenv und Python 2.x verwendet. Jetzt verwende ich venv und Python 3.5.x. Ich finde jedoch immer noch die gleiche allgemeine Ordnerstruktur. Bei Anaconda handelt es sich um eine kuratierte, eindeutige Verteilung, sodass die Dinge zumindest teilweise anders strukturiert werden können.
Khampson
579

Auf vielfachen Wunsch wird eine Option per Antwort bereitgestellt:

pip show <package name>wird den Speicherort für Windows und MacOS bereitstellen, und ich vermute jedes System. :) :)

Zum Beispiel:

> pip show cvxopt
Name: cvxopt
Version: 1.2.0
...
Location: /usr/local/lib/python2.7/site-packages
gdbj
quelle
15
Auf dem Mac zeigte mir dies ein Verzeichnis mit dem awscli-Quellcode, aber ohne Binärdatei. : /
Cory Klein
8
Richtig, aber um die gestellte Frage vollständig zu erfüllen, sollte es seinpip3 show <package name>
Jorge Torres
1
Ich verwende Python 3.6 unter Windows und "Pip" bezieht sich auf Pip für Python 3. Ich muss nicht "Pip3" angeben.
FistOfFury
7
@CoryKlein Anstatt site-packages/, fand ich es in~/Library/Python/3.7/bin/
Matt Fletcher
2
Arbeitete sehr gut für Ubuntu 18.04
Mohammed Baashar
47

pip list -vkann verwendet werden, um die Installationsorte der Pakete aufzulisten, die unter https://pip.pypa.io/en/stable/news/#b1-2018-03-31 eingeführt wurden

Installationsorte anzeigen, wenn der Listenbefehl mit der Option "-v" ausgeführt wurde. (# 979)

>pip list -v
Package                  Version   Location                                                             Installer
------------------------ --------- -------------------------------------------------------------------- ---------
alabaster                0.7.12    c:\users\me\appdata\local\programs\python\python38\lib\site-packages pip
apipkg                   1.5       c:\users\me\appdata\local\programs\python\python38\lib\site-packages pip
argcomplete              1.10.3    c:\users\me\appdata\local\programs\python\python38\lib\site-packages pip
astroid                  2.3.3     c:\users\me\appdata\local\programs\python\python38\lib\site-packages pip
...

Update : Diese Funktion wird in pip10.0.0b1 eingeführt. Unter Ubuntu 18.04 pipoder pip3installiert mit sudo apt install python-pipoder sudo apt install python3-pipist 9.0.1, das diese Funktion nicht hat. Unter https://github.com/pypa/pip/issues/5599 finden Sie geeignete Möglichkeiten zum Aktualisieren pipoder pip3.

jiasli
quelle
4
Leider funktioniert dies nicht auf Ubuntu 18.04LTS
Sumanth Lazarus
1
@ SumanthLazarus sollte es auf jeden Fall funktionieren.
Funnydman
Funktioniert nicht einmal unter Mac OS Mojave
Sahil Nagpal
1
@SumanthLazarus Es hat bei mir am 18.04
Louis Waweru
3
Für mich wird der Installationsort (unter Linux Mint 19.3) nicht
angezeigt
11

Unter Linux installiert Pip standardmäßig Pakete unter /usr/local/lib/python2.7/dist-packages.

Wenn Sie während der Installation virtualenv oder --user verwenden, wird dieser Standardspeicherort geändert. Wenn Sie verwenden, pip showstellen Sie sicher, dass Sie den richtigen Benutzer verwenden. Andernfalls werden pipdie Pakete, auf die Sie verweisen, möglicherweise nicht angezeigt.

CognizantApe
quelle
7

In einem Python-Interpreter oder -Skript können Sie dies tun

import site
site.getsitepackages() # list of global package locations

und

site.getusersitepackages() #string for user-specific package location

Für Standorte werden Pakete von Drittanbietern (die nicht in der Python-Kerndistribution enthalten sind) installiert.

Auf meinem von Brew installierten Python unter MacOS werden die früheren Ausgaben ausgeführt

['/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages'],

die kanonisiert auf den gleichen Pfad, der von ausgegeben wird pip show, wie in einer vorherigen Antwort erwähnt:

$ readlink -f /usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages
/usr/local/lib/python3.7/site-packages

Referenz: https://docs.python.org/3/library/site.html#site.getsitepackages

flow2k
quelle