Dove pip installa i suoi pacchetti?


323

Ho attivato un virtualenv che ha installato pip. L'ho fatto

pip3 install Django==1.8

e Django scaricato correttamente. Ora voglio aprire la cartella Django. Dove si trova la cartella? Normalmente sarebbe in "download" ma non sono sicuro di dove sarebbe se lo avessi installato usando pip in un virtualenv.


1
La directory in cui installare i pacchetti può essere sovrascritta tramite argomenti CLI, variabili di ambiente o un file di configurazione?
John Carrell,

Risposte:


108

pip quando utilizzato con virtualenv generalmente installa i pacchetti nel percorso <virtualenv_name>/lib/<python_ver>/site-packages.

Ad esempio, ho creato un virtualenv di prova chiamato venv_test con Python 2.7 e la djangocartella è in venv_test/lib/python2.7/site-packages/django.


1
A volte potresti non conoscere il nome / percorso virtualenv, ad esempio l'utilizzo delle risorse generate da Jupyterhub / binderhub. Ho trovato il modo n. 1 qui per funzionare quando pip shownon ha fatto nulla. In breve, consiste nell'inserire la console python appropriata e digitare help("module_name"), dove module_nameviene sostituito con il nome del modulo effettivo a cui sei interessato. Puoi vedere i moduli installati con help("modules")nella console di Python.
Wayne,

1
in che modo hai creato virtualenv? Sto usando conda per creare il mio ambiente virtuale mentre pip3 non ha installato il pacchetto nella cartella che hai citato
cloud computa il

All'epoca (quasi 4 anni fa) utilizzavo virtualenv e Python 2.x. Ora sto usando venv e Python 3.5.x. Trovo comunque la stessa struttura generale di cartelle. Con Anaconda, questa è una distribuzione curata e distinta, quindi può strutturare le cose in modo diverso, almeno in parte.
Khampson,

583

A grande richiesta, un'opzione fornita tramite risposta postata:

pip show <package name>fornirà la posizione per Windows e macOS e suppongo che qualsiasi sistema. :)

Per esempio:

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

15
Su Mac questo mi ha mostrato una directory con il codice sorgente awscli, ma non binario. : /
Cory Klein il

8
Corretto, ma per essere pienamente conforme alla domanda posta, dovrebbe esserepip3 show <package name>
Jorge Torres,

1
sto usando Python 3.6 su Windows e "Pip" si riferisce a Pip per Python 3. Non ho bisogno di specificare "Pip3".
FistOfFury

7
@CoryKlein Piuttosto che l' site-packages/ho trovato in~/Library/Python/3.7/bin/
Matt Fletcher l'

2
Ha funzionato molto bene con Ubuntu 18.04
Mohammed Baashar,

47

pip list -vpuò essere utilizzato per elencare i percorsi di installazione dei pacchetti, introdotti in https://pip.pypa.io/en/stable/news/#b1-2018-03-31

Mostra percorsi di installazione quando il comando list veniva eseguito con l'opzione "-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
...

Aggiornamento : questa funzione è stata introdotta in pip10.0.0b1. Su Ubuntu 18.04, pipo pip3installato con sudo apt install python-pipo sudo apt install python3-pipè 9.0.1 che non ha questa funzionalità. Controllare https://github.com/pypa/pip/issues/5599 per modi adeguati di aggiornamento pipo pip3.


4
Sfortunatamente, questo non funziona su Ubuntu 18.04LTS
Sumanth Lazarus il

3
Per me, non mostra il percorso di installazione (su Linux Mint 19.3)
Nicolai Weitkemper

L' pipinstallazione usando sudo apt install python-pipo sudo apt install python3-pipè 9.0.1. Controllare github.com/pypa/pip/issues/5599 per modi adeguati di aggiornamento pipo pip3.
jiasli,

11

Per impostazione predefinita, su Linux, Pip installa i pacchetti in /usr/local/lib/python2.7/dist-packages.

L'uso di virtualenv o --user durante l'installazione modificherà questa posizione predefinita. Se lo usi, pip showassicurati di utilizzare l'utente giusto, altrimenti pippotresti non vedere i pacchetti a cui fai riferimento.


7

In un interprete o in uno script Python, puoi farlo

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

e

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

per le posizioni sono installati i pacchetti di terze parti (quelli che non sono nella distribuzione Python principale).

Sul mio Python installato da Brew su MacOS, le uscite precedenti

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

che canonicalizza allo stesso percorso prodotto da pip show, come menzionato in una risposta precedente:

$ 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

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.