pip ติดตั้งแพ็คเกจที่ไหน?


323

ฉันเปิดใช้งาน virtualenv ซึ่งมี pip ติดตั้งอยู่ ฉันทำ

pip3 install Django==1.8

และ Django ดาวน์โหลดสำเร็จแล้ว ตอนนี้ฉันต้องการเปิดโฟลเดอร์ Django โฟลเดอร์ตั้งอยู่ที่ไหน? ปกติแล้วมันจะอยู่ใน "ดาวน์โหลด" แต่ฉันไม่แน่ใจว่ามันจะอยู่ที่ไหนถ้าฉันติดตั้งโดยใช้ pip ใน virtualenv


1
ไดเร็กทอรีที่จะติดตั้งแพ็กเกจสามารถเขียนทับผ่านทาง CLI args, ตัวแปรสภาวะแวดล้อมหรือไฟล์ config ได้หรือไม่?
John Carrell

คำตอบ:


108

pipเมื่อใช้กับvirtualenvโดยทั่วไปจะติดตั้งแพคเกจในเส้นทาง<virtualenv_name>/lib/<python_ver>/site-packagesโดยทั่วไปจะติดตั้งแพคเกจในเส้นทาง

ตัวอย่างเช่นผมสร้าง virtualenv ทดลองชื่อvenv_testกับงูหลาม 2.7 และโฟลเดอร์ที่อยู่ในdjangovenv_test/lib/python2.7/site-packages/django


1
บางครั้งคุณอาจไม่รู้จักชื่อ / เส้นทาง virtualenv เช่นใช้กับ Jupyterhub / binderhub วางไข่ทรัพยากร ฉันพบวิธี # 1 ที่นี่เพื่อทำงานเมื่อpip showไม่ทำอะไรเลย โดยย่อประกอบด้วยการป้อนคอนโซลหลามที่เหมาะสมและการพิมพ์help("module_name")ซึ่งmodule_nameจะถูกแทนที่ด้วยชื่อโมดูลจริงที่คุณสนใจ คุณสามารถดูโมดูลที่ติดตั้งด้วยhelp("modules")ในคอนโซลหลาม
Wayne

1
ในทางใดที่คุณสร้าง virtualenv ของคุณ ฉันกำลังใช้ conda เพื่อสร้างสภาพแวดล้อมเสมือนของฉันในขณะที่ pip3 ไม่ได้ติดตั้งแพคเกจในโฟลเดอร์ที่คุณกล่าวถึง
cloudscomputes

ในเวลา (เกือบ 4 ปีที่ผ่านมา) ฉันใช้virtualenvและ Python 2.x ตอนนี้ฉันกำลังใช้ venv และ Python 3.5.x ฉันยังคงพบโครงสร้างโฟลเดอร์ทั่วไปเหมือนกัน ด้วยอนาคอนด้านั่นคือการกระจายที่ชัดเจนและชัดเจนดังนั้นมันจึงอาจจัดโครงสร้างสิ่งต่าง ๆ อย่างน้อยก็ในบางส่วน
khampson

583

ตามอุปสงค์ที่เป็นที่นิยม

pip show <package name>จะให้ที่ตั้งสำหรับ Windows และ macOS และฉันคาดเดาระบบใด ๆ :)

ตัวอย่างเช่น:

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

15
ใน mac นี้แสดงไดเรกทอรีที่มีซอร์สโค้ด awscli ให้ฉัน แต่ไม่มีไบนารี : /
Cory Klein

8
ถูกต้อง แต่เป็นไปตามคำถามที่ถามมาอย่างครบถ้วนpip3 show <package name>
Jorge Torres

1
ฉันใช้ python 3.6 บน windows และ "pip" อ้างถึง pip สำหรับ python 3 ฉันไม่จำเป็นต้องระบุ "pip3"
FistOfFury

7
@CoryKlein มากกว่าsite-packages/ฉันพบมันใน~/Library/Python/3.7/bin/
Matt Fletcher

2
ทำงานได้ดีมากสำหรับ Ubuntu 18.04
Mohammed Baashar

47

pip list -vสามารถใช้แสดงรายการตำแหน่งการติดตั้งของแพ็คเกจได้ที่https://pip.pypa.io/en/stable/news/#b1-2018-03-31

แสดงตำแหน่งการติดตั้งเมื่อคำสั่ง list รันด้วยตัวเลือก“ -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
...

อัปเดต : คุณลักษณะนี้มีการนำมาใช้ในpip10.0.0b1 บน Ubuntu 18.04 pipหรือpip3ติดตั้งด้วยsudo apt install python-pipหรือsudo apt install python3-pipเป็น 9.0.1 ซึ่งไม่มีคุณสมบัตินี้ ตรวจสอบhttps://github.com/pypa/pip/issues/5599หาวิธีการที่เหมาะสมในการอัพเกรดหรือpippip3


4
น่าเสียดายที่นี่ใช้ไม่ได้กับ Ubuntu 18.04LTS
Sumanth Lazarus

3
สำหรับฉันมันไม่แสดงตำแหน่งการติดตั้ง (บน Linux Mint 19.3)
Nicolai Weitkemper

การpipติดตั้งโดยใช้sudo apt install python-pipหรือsudo apt install python3-pipเป็น 9.0.1 ตรวจสอบgithub.com/pypa/pip/issues/5599หาวิธีการที่เหมาะสมในการอัพเกรดหรือpip pip3
jiasli

11

โดยค่าเริ่มต้นบน Linux Pip จะติดตั้งแพ็คเกจไปที่ /usr/local/lib/python2.7/dist-packages

การใช้ virtualenv หรือ --user ระหว่างการติดตั้งจะเปลี่ยนตำแหน่งเริ่มต้นนี้ หากคุณใช้pip showให้แน่ใจว่าคุณกำลังใช้ผู้ใช้ที่ถูกต้องมิฉะนั้นpipอาจไม่เห็นแพ็คเกจที่คุณกำลังอ้างอิง


7

ในตัวแปลหรือสคริปต์ Python คุณสามารถทำได้

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

และ

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

สำหรับแพคเกจที่ตั้งของบุคคลที่สาม (ที่ไม่ได้อยู่ในการแจกจ่าย Python หลัก) ได้รับการติดตั้ง

ใน Python ที่ติดตั้ง Brew ของฉันใน MacOS ผลลัพธ์ก่อนหน้านี้

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

ซึ่ง canonicalizes ไปยังเส้นทางออกเดียวกันโดยpip showตามที่กล่าวไว้ในคำตอบก่อนหน้า:

$ 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

การอ้างอิง: https://docs.python.org/3/library/site.html#site.getsitepackages

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.