¿Dónde instala pip sus paquetes?

324

Activé un virtualenv que tiene pip instalado. yo hice

pip3 install Django==1.8

y Django se descargó con éxito. Ahora, quiero abrir la carpeta Django. ¿Dónde se encuentra la carpeta? Normalmente estaría en "descargas", pero no estoy seguro de dónde estaría si lo instalara usando pip en un virtualenv.

usuario2719875
fuente
1
¿Se puede anular el directorio en el que instalar los paquetes a través de argumentos CLI, variables de entorno o un archivo de configuración?
John Carrell

Respuestas:

108

pip cuando se usa con virtualenv generalmente instalará paquetes en la ruta <virtualenv_name>/lib/<python_ver>/site-packages.

Por ejemplo, creé una prueba virtualenv llamada venv_test con Python 2.7, y la djangocarpeta está en venv_test/lib/python2.7/site-packages/django.

khampson
fuente
1
A veces es posible que no conozca el nombre / ruta virtualenv, como el uso de recursos generados con Jupyterhub / binderhub. Encontré el camino # 1 aquí para trabajar cuando pip showno hice nada. Brevemente, consiste en ingresar la consola de Python apropiada y escribir help("module_name"), donde module_namese reemplaza con el nombre del módulo real en el que está interesado. Puede ver los módulos instalados help("modules")en la consola de Python.
Wayne
1
de qué manera construiste tu virtualenv? Estoy usando conda para crear mi entorno virtual, mientras que el pip3 no instaló el paquete en la carpeta que mencionaste
cloudscomputes
En ese momento (hace casi 4 años), estaba usando virtualenv y Python 2.x. Ahora estoy usando venv y Python 3.5.x. Sin embargo, todavía encuentro la misma estructura general de carpetas. Con Anaconda, esa es una distribución curada y distinta, por lo que puede estructurar las cosas de manera diferente, al menos en parte.
khampson
583

Por demanda popular, una opción proporcionada a través de la respuesta publicada:

pip show <package name>proporcionará la ubicación para Windows y macOS, y supongo que cualquier sistema. :)

Por ejemplo:

> pip show cvxopt
Name: cvxopt
Version: 1.2.0
...
Location: /usr/local/lib/python2.7/site-packages
gdbj
fuente
15
En mac, esto me mostró un directorio con el código fuente awscli, pero no binario. : /
Cory Klein
8
Correcto, pero para cumplir totalmente con la pregunta que se hace, debería serlopip3 show <package name>
Jorge Torres
1
Estoy usando Python 3.6 en Windows y "pip" se refiere a pip para python 3. No necesito especificar "pip3".
FistOfFury
77
@CoryKlein En lugar de site-packages/eso, lo encontré en~/Library/Python/3.7/bin/
Matt Fletcher el
2
Funcionó muy bien para ubuntu 18.04
Mohammed Baashar
47

pip list -vse puede usar para enumerar las ubicaciones de instalación de los paquetes, introducidas en https://pip.pypa.io/en/stable/news/#b1-2018-03-31

Mostrar ubicaciones de instalación cuando el comando de lista se ejecutó con la opción "-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
...

Actualización : esta característica se introduce en pip10.0.0b1. En Ubuntu 18.04, pipo pip3instalado con sudo apt install python-pipo sudo apt install python3-pipes 9.0.1 que no tiene esta característica. Consulte https://github.com/pypa/pip/issues/5599 para conocer las formas adecuadas de actualización pipo pip3.

jiasli
fuente
44
Desafortunadamente, esto no funciona en Ubuntu 18.04LTS
Sumanth Lazarus el
3
Para mí, no muestra la ubicación de instalación (en Linux Mint 19.3)
Nicolai Weitkemper
El pipinstalado usando sudo apt install python-pipo sudo apt install python3-pipes 9.0.1. Consulte github.com/pypa/pip/issues/5599 para conocer las formas adecuadas de actualización pipo pip3.
jiasli
11

Por defecto, en Linux, Pip instala paquetes en /usr/local/lib/python2.7/dist-packages.

El uso de virtualenv o --user durante la instalación cambiará esta ubicación predeterminada. Si usa, pip showasegúrese de estar usando el usuario correcto o de lo contrario pipno podrá ver los paquetes a los que hace referencia.

CognizantApe
fuente
7

En un intérprete o script de Python, puede hacer

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

y

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

para ubicaciones en las que se instalan paquetes de terceros (aquellos que no están en la distribución principal de Python).

En mi Python instalado en Brew en MacOS, las salidas anteriores

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

que canonicaliza a la misma ruta de salida pip show, como se mencionó en una respuesta anterior:

$ 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

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

flujo2k
fuente