Où pip installe-t-il ses packages?

324

J'ai activé un virtualenv sur lequel pip est installé. J'ai fait

pip3 install Django==1.8

et Django ont été téléchargés avec succès. Maintenant, je veux ouvrir le dossier Django. Où se trouve le dossier? Normalement, ce serait en "téléchargements" mais je ne sais pas où il serait si je l'installais en utilisant pip dans un virtualenv.

user2719875
la source
1
Le répertoire dans lequel installer les packages peut-il être remplacé via les arguments CLI, les variables d'environnement ou un fichier de configuration?
John Carrell

Réponses:

108

pip lorsqu'il est utilisé avec virtualenv installera généralement des packages dans le chemin <virtualenv_name>/lib/<python_ver>/site-packages.

Par exemple, j'ai créé un virtualenv de test nommé venv_test avec Python 2.7, et le djangodossier est dedansvenv_test/lib/python2.7/site-packages/django .

khampson
la source
1
Parfois, vous ne connaissez peut-être pas le nom / chemin de virtualenv, comme l'utilisation de ressources générées par Jupyterhub / binderhub. J'ai trouvé le chemin n ° 1 ici pour travailler quand je pip shown'ai rien fait. En bref, cela consiste à saisir la console python appropriée et à taper help("module_name"), où module_nameest remplacé le nom du module réel qui vous intéresse. Vous pouvez voir les modules installés avec help("modules")dans la console python.
Wayne
1
de quelle manière vous avez construit votre virtualenv? J'utilise conda pour créer mon environnement virtuel alors que pip3 n'a pas installé le package dans le dossier que vous avez mentionné
cloudscomputes
À l'époque (il y a près de 4 ans), j'utilisais virtualenv et Python 2.x. Maintenant, j'utilise venv et Python 3.5.x. Cependant, je trouve toujours la même structure de dossiers générale. Avec Anaconda, c'est une distribution organisée et distincte, donc elle peut structurer les choses différemment, au moins en partie.
khampson
583

À la demande générale, une option fournie via une réponse publiée:

pip show <package name>fournira l'emplacement pour Windows et macOS, et je suppose que n'importe quel système. :)

Par exemple:

> pip show cvxopt
Name: cvxopt
Version: 1.2.0
...
Location: /usr/local/lib/python2.7/site-packages
gdbj
la source
15
Sur mac, cela m'a montré un répertoire avec le code source awscli, mais pas de binaire. : /
Cory Klein
8
Correct, mais pour être pleinement conforme à la question posée, cela devrait êtrepip3 show <package name>
Jorge Torres
1
j'utilise python 3.6 sur windows et "pip" fait référence à pip pour python 3. je n'ai pas besoin de spécifier "pip3".
FistOfFury
7
@CoryKlein Plutôt que site-packages/, je l'ai trouvé dans~/Library/Python/3.7/bin/
Matt Fletcher
2
A très bien fonctionné pour ubuntu 18.04
Mohammed Baashar
47

pip list -vpeut être utilisé pour répertorier les emplacements d'installation des packages, introduits dans https://pip.pypa.io/en/stable/news/#b1-2018-03-31

Afficher les emplacements d'installation lorsque la commande list a été exécutée avec l'option «-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
...

Mise à jour : cette fonctionnalité est introduite dans pip10.0.0b1. Sur Ubuntu 18.04, pipou pip3installé avec sudo apt install python-pipou sudo apt install python3-pipest 9.0.1 qui n'a pas cette fonctionnalité. Consultez https://github.com/pypa/pip/issues/5599 pour les moyens appropriés de mise à niveau pipou pip3.

jiasli
la source
4
Malheureusement, cela ne fonctionne pas sur Ubuntu 18.04LTS
Sumanth Lazarus
3
Pour moi, il ne montre pas l'emplacement d'installation (sur Linux Mint 19.3)
Nicolai Weitkemper
Le pipinstallé en utilisant sudo apt install python-pipou sudo apt install python3-pipest 9.0.1. Consultez github.com/pypa/pip/issues/5599 pour les moyens appropriés de mise à niveau pipou pip3.
jiasli
11

Par défaut, sous Linux, Pip installe les packages dans /usr/local/lib/python2.7/dist-packages.

L'utilisation de virtualenv ou --user pendant l'installation changera cet emplacement par défaut. Si vous utilisez, pip showassurez-vous d'utiliser le bon utilisateur, sinon pipvous risquez de ne pas voir les packages auxquels vous faites référence.

CognizantApe
la source
7

Dans un interpréteur ou un script Python, vous pouvez faire

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

et

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

pour les emplacements, les packages tiers (ceux qui ne font pas partie de la distribution Python principale) sont installés sur.

Sur mon Python installé sur Brew sur MacOS, les anciennes sorties

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

qui canonise vers le même chemin de sortie pip show, comme mentionné dans une réponse précédente:

$ 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

Référence: https://docs.python.org/3/library/site.html#site.getsitepackages

flow2k
la source