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.


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.


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

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.


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.


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.