Gdzie pip instaluje swoje pakiety?


323

Aktywowałem virtualenv z zainstalowanym pipem. Zrobiłem

pip3 install Django==1.8

i Django zostało pomyślnie pobrane. Teraz chcę otworzyć folder Django. Gdzie znajduje się folder? Zwykle byłoby to w „pobraniu”, ale nie jestem pewien, gdzie by to było, gdybym zainstalował go za pomocą pipa w virtualenv.


1
Czy katalog, w którym mają zostać zainstalowane pakiety, można zastąpić argumentami CLI, zmiennymi środowiskowymi lub plikiem konfiguracyjnym?
John Carrell,

Odpowiedzi:


108

pip, gdy jest używany z virtualenv , zazwyczaj instaluje pakiety na ścieżce <virtualenv_name>/lib/<python_ver>/site-packages.

Na przykład utworzyłem test virtualenv o nazwie venv_test w Pythonie 2.7, a djangofolder jest w folderze venv_test/lib/python2.7/site-packages/django.


1
Czasami możesz nie znać nazwy / ścieżki virtualenv, na przykład korzystanie z zasobów spawnowanych Jupyterhub / binderhub. Znalazłem drogę nr 1 tutaj do pracy, gdy pip shownic nie zrobił. W skrócie, polega to na wpisaniu odpowiedniej konsoli python i wpisaniu help("module_name"), gdzie module_namejest ona zastąpiona rzeczywistą nazwą modułu, którą jesteś zainteresowany. Możesz zobaczyć zainstalowane moduły help("modules")w konsoli Pythona.
Wayne

1
w jaki sposób zbudowałeś virtualenv? Korzystam z conda, aby utworzyć środowisko wirtualne, podczas gdy pip3 nie zainstalował pakietu w folderze, o którym wspomniałeś
cloudscomputs

W tym czasie (prawie 4 lata temu) korzystałem z virtualenv i Python 2.x. Teraz używam venv i Python 3.5.x. Nadal jednak znajduję tę samą ogólną strukturę folderów. W przypadku Anakondy jest to wyselekcjonowany, wyraźny rozkład, więc może on różnie nadawać strukturę, przynajmniej częściowo.
khampson

583

Zgodnie z popularnym żądaniem opcja dostarczona za pośrednictwem opublikowanej odpowiedzi:

pip show <package name>poda lokalizację dla systemu Windows i macOS i domyślam się, że każdy system. :)

Na przykład:

> pip show cvxopt
Name: cvxopt
Version: 1.2.0
...
Location: /usr/local/lib/python2.7/site-packages

15
Na Macu pokazał mi katalog z kodem źródłowym awscli, ale bez pliku binarnego. : /
Cory Klein,

8
Zgadza się, ale aby być w pełni zgodnym z zadanym pytaniem, powinno byćpip3 show <package name>
Jorge Torres

1
używam Pythona 3.6 w systemie Windows, a „pip” odnosi się do pip dla python 3. Nie muszę określać „pip3”.
FistOfFury,

7
@CoryKlein Zamiast site-packages/tego znalazłem to w~/Library/Python/3.7/bin/
Matt Fletcher

2
Bardzo dobrze działał na Ubuntu 18.04
Mohammed Baashar

47

pip list -vmoże być używany do wyświetlania listy lokalizacji instalacji pakietów, wprowadzonej w https://pip.pypa.io/en/stable/news/#b1-2018-03-31

Pokaż lokalizacje instalacji, gdy uruchomiono polecenie list z opcją „-v”. (# 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
...

Aktualizacja : Ta funkcja została wprowadzona w wersji pip10.0.0b1. W systemie Ubuntu 18.04 piplub pip3w wersji 9.0.1 sudo apt install python-piplub sudo apt install python3-pipnowszej, która nie ma tej funkcji. Sprawdź https://github.com/pypa/pip/issues/5599 dla odpowiednich sposobów aktualizacji piplub pip3.


4
Niestety nie działa to w systemie Ubuntu 18.04LTS
Sumanth Lazarus

3
Dla mnie nie pokazuje miejsca instalacji (w Linux Mint 19.3)
Nicolai Weitkemper

The pipZainstalowane przy użyciu sudo apt install python-piplub sudo apt install python3-pipjest 9.0.1. Sprawdź github.com/pypa/pip/issues/5599, aby znaleźć odpowiednie sposoby aktualizacji piplub pip3.
jiasli

11

Domyślnie, w Linuksie, Pip instaluje pakiety w /usr/local/lib/python2.7/dist-packages.

Użycie virtualenv lub --user podczas instalacji zmieni tę domyślną lokalizację. Jeśli używasz, pip showupewnij się, że korzystasz z odpowiedniego użytkownika, w przeciwnym razie pipmożesz nie widzieć pakietów, do których się odwołujesz.


7

Możesz to zrobić za pomocą interpretera lub skryptu w języku Python

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

i

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

dla lokalizacji instalowane są pakiety innych firm (nie znajdujące się w podstawowej dystrybucji Pythona).

W moim Pythonie zainstalowanym w systemie Brew na MacOS, poprzednie wyniki

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

który kanonizuje do tej samej ścieżki wyjściowej pip show, jak wspomniano w poprzedniej odpowiedzi:

$ 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

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.