Di mana pip menginstal paket-paketnya?

323

Saya mengaktifkan virtualenv yang telah menginstal pip. aku melakukannya

pip3 install Django==1.8

dan Django berhasil diunduh. Sekarang, saya ingin membuka folder Django. Di mana folder itu berada? Biasanya itu akan di "unduhan" tapi saya tidak yakin di mana itu akan jika saya menginstalnya menggunakan pip di virtualenv.

pengguna2719875
sumber
1
Dapatkah direktori tempat menginstal paket ditimpa melalui argumen CLI, variabel lingkungan atau file konfigurasi?
John Carrell

Jawaban:

108

pip ketika digunakan dengan virtualenv umumnya akan menginstal paket di path <virtualenv_name>/lib/<python_ver>/site-packages.

Sebagai contoh, saya membuat sebuah tes virtualenv bernama venv_test dengan Python 2.7, dan djangofolder dalam venv_test/lib/python2.7/site-packages/django.

khampson
sumber
1
Kadang-kadang Anda mungkin tidak tahu nama virtualenv / jalur, seperti menggunakan dengan sumber daya Jupyterhub / binderhub spawned. Saya menemukan cara # 1 di sini untuk bekerja ketika pip showtidak melakukan apa pun. Secara singkat, ini terdiri dari memasukkan konsol python yang sesuai dan mengetik help("module_name"), di mana module_namediganti dengan nama modul yang sebenarnya di mana Anda tertarik. Anda dapat melihat modul yang terpasang dengan help("modules")di python console.
Wayne
1
bagaimana Anda membangun virtualenv Anda? Saya menggunakan conda untuk membuat lingkungan virtual saya sementara pip3 tidak menginstal paket di folder yang Anda sebutkan
cloudscomputes
Pada saat itu (hampir 4 tahun yang lalu), saya menggunakan virtualenv dan Python 2.x. Sekarang, saya menggunakan venv dan Python 3.5.x. Saya masih menemukan struktur folder umum yang sama. Dengan Anaconda, itu adalah distribusi yang dikuratori dan berbeda, sehingga dapat menyusun berbagai hal secara berbeda, setidaknya sebagian.
khampson
583

Berdasarkan permintaan populer, opsi disediakan melalui jawaban yang diposting:

pip show <package name>akan menyediakan lokasi untuk Windows dan macOS, dan saya menebak sistem apa pun. :)

Sebagai contoh:

> pip show cvxopt
Name: cvxopt
Version: 1.2.0
...
Location: /usr/local/lib/python2.7/site-packages
gdbj
sumber
15
Di mac ini menunjukkan kepada saya direktori dengan kode sumber awscli, tetapi tidak ada biner. : /
Cory Klein
8
Benar, tetapi untuk sepenuhnya mematuhi pertanyaan yang diajukan, seharusnyapip3 show <package name>
Jorge Torres
1
Saya menggunakan python 3.6 di windows dan "pip" merujuk ke pip untuk python 3. saya tidak perlu menentukan "pip3".
FistOfFury
7
@CoryKlein Daripada site-packages/, saya menemukannya di~/Library/Python/3.7/bin/
Matt Fletcher
2
Bekerja sangat baik untuk ubuntu 18.04
Mohammed Baashar
47

pip list -vdapat digunakan untuk mendaftar lokasi pemasangan paket, yang diperkenalkan di https://pip.pypa.io/en/stable/news/#b1-2018-03-31

Tampilkan lokasi instal ketika perintah list dijalankan dengan opsi “-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
...

Pembaruan : Fitur ini diperkenalkan pada pip10.0.0b1. Di Ubuntu 18.04, pipatau pip3diinstal dengan sudo apt install python-pipatau sudo apt install python3-pip9.0.1 yang tidak memiliki fitur ini. Periksa https://github.com/pypa/pip/issues/5599 untuk mengetahui cara peningkatan yang sesuai pipatau pip3.

jiasli
sumber
4
Sayangnya, ini tidak berfungsi di Ubuntu 18.04LTS
Sumanth Lazarus
3
Bagi saya, ini tidak menunjukkan lokasi pemasangan (di Linux Mint 19.3)
Nicolai Weitkemper
The pipdiinstal menggunakan sudo apt install python-pipatau sudo apt install python3-pipadalah 9.0.1. Periksa github.com/pypa/pip/issues/5599 untuk mengetahui cara peningkatan yang sesuai pipatau pip3.
jiasli
11

Secara default, di Linux, Pip menginstal paket ke /usr/local/lib/python2.7/dist-packages.

Menggunakan virtualenv atau --user selama instalasi akan mengubah lokasi default ini. Jika Anda menggunakan pip showpastikan Anda menggunakan pengguna yang tepat atau yang lain pipmungkin tidak melihat paket yang Anda rujuk.

CognizantApe
sumber
7

Dalam interpreter atau skrip Python, Anda bisa melakukannya

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

dan

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

untuk lokasi paket-paket pihak ke-3 (yang tidak ada dalam distribusi Python inti) diinstal ke.

Pada Python Brew-instal saya pada MacOS, output sebelumnya

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

yang dikanonikkan ke jalur keluaran yang sama dengan pip show, seperti yang disebutkan dalam jawaban sebelumnya:

$ 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

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

flow2k
sumber