Де Pip встановлює свої пакети?


323

Я активував virtualenv, у якого встановлено pip. я зробив

pip3 install Django==1.8

і Джанго успішно завантажено. Тепер я хочу відкрити папку Django. Де знаходиться папка? Зазвичай це було б у "завантаженнях", але я не впевнений, де це було б, якби я встановив його за допомогою pip у virtualenv.


1
Чи може каталог, в якому встановлювати пакети, замінити через аргументи CLI, змінні середовища або файл конфігурації?
Джон Керрелл

Відповіді:


108

pip при використанні з virtualenv , як правило, встановлюватиме пакунки на шляху <virtualenv_name>/lib/<python_ver>/site-packages.

Наприклад, я створив тестовий virtualenv з іменем venv_test з Python 2.7, і djangoпапка знаходиться в venv_test/lib/python2.7/site-packages/django.


1
Іноді ви, можливо, не знаєте ім'я / шлях virtualenv, як-от використання з породженими ресурсами Jupyterhub / binderhub. Я знайшов спосіб №1 тут працювати, коли pip showнічого не робив. Якщо коротко, він полягає у введенні відповідної консолі python та введенні тексту help("module_name"), де module_nameзамінюється фактичне ім'я модуля, в якому ви зацікавлені. Ви можете побачити встановлені модулі з help("modules")на консолі python.
Уейн

1
в який спосіб ви побудували свій віртуаленв? Я використовую conda, щоб створити моє віртуальне середовище, поки pip3 не встановив пакунок у папці, яку ви згадали
cloudscomputes

У той час (майже 4 роки тому) я використовував virtualenv та Python 2.x. Зараз я використовую venv та Python 3.5.x. Я все ще знаходжу ту саму загальну структуру папок. У Anaconda це чіткий чіткий розподіл, тому він може структурувати речі по-різному, принаймні частково.
khampson

583

За популярним попитом, опція надається за допомогою розміщеної відповіді:

pip show <package name>надасть розташування для Windows та macOS, і я здогадуюсь про будь-яку систему. :)

Наприклад:

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

15
На mac це показало мені каталог із вихідним кодом awscli, але не двійковим. : /
Cory Klein

8
Правильно, але щоб повністю відповідати pip3 show <package name>
Хорхе Торрес,

1
Я використовую python 3.6 для Windows, а "pip" відноситься до pip для python 3. Мені не потрібно вказувати "pip3".
FistOfFury

7
@CoryKlein Замість цього site-packages/я знайшов це в~/Library/Python/3.7/bin/
Метт Флетчер

2
Працював дуже добре для ubuntu 18.04
Мохаммед Баашар

47

pip list -vможна використовувати для переліку місць встановлення пакунків, представлених у https://pip.pypa.io/en/stable/news/#b1-2018-03-31

Показати місця встановлення, коли команда списку виконується за допомогою параметра «-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
...

Оновлення : Ця функція введена в pip10.0.0b1. У Ubuntu 18.04 pipабо pip3встановлений з sudo apt install python-pipабо sudo apt install python3-pipє 9.0.1, який не має цієї функції. Перевірте https://github.com/pypa/pip/isissue/5599 на відповідні способи оновлення pipабо pip3.


4
На жаль, це не працює на Ubuntu 18.04LTS
Lazarus

3
Для мене це місце не встановлено (на Linux Mint 19.3)
Nicolai Weitkemper

pipВстановлюється з допомогою sudo apt install python-pipабо sudo apt install python3-pipє 9.0.1. Перевірте github.com/pypa/pip/isissue/5599 на відповідні способи оновлення pipабо pip3.
jiasli

11

За замовчуванням у Linux Pip встановлює пакети до /usr/local/lib/python2.7/dist-packages.

Використання virtualenv або --user під час встановлення змінить це місце за замовчуванням. Якщо ви використовуєте, pip showпереконайтеся, що ви використовуєте потрібного користувача, або ж pipне бачите пакунків, на які ви посилаєтесь.


7

У інтерпретаторі або скрипті Python ви можете це зробити

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

і

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

для локацій встановлені сторонні пакети (ті, які не є в основній дистрибуції Python).

На моєму Brew встановленому Python на MacOS колишні виходи

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

який кананізується до того ж шляху виведення pip show, як зазначено в попередній відповіді:

$ 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

Довідка: https://docs.python.org/3/library/site.html#site.getsitepackages

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.