จะใช้ pip ของ Python เพื่อดาวน์โหลดและเก็บไฟล์ซิปสำหรับแพ็คเกจได้อย่างไร?


105

หากฉันต้องการใช้pipคำสั่งเพื่อดาวน์โหลดแพ็กเกจ (และการอ้างอิง) แต่เก็บไฟล์ซิปทั้งหมดที่ดาวน์โหลดมา (เช่น django-socialregistration.tar.gz) มีวิธีทำหรือไม่

ฉันได้พยายามเลือกบรรทัดคำสั่งต่าง ๆ แต่มันก็ดูเหมือนว่าจะแกะและลบ zipfile - หรือจะได้รับ zipfile แต่เพียงสำหรับแพคเกจเดิมได้อ้างอิง

คำตอบ:


80

pip install --downloadเลิกใช้แล้ว เริ่มตั้งแต่เวอร์ชัน 8.0.0 คุณควรใช้pip downloadคำสั่ง:

 pip download <package-name>

3
และจะติดตั้งแพ็คเกจที่ดาวน์โหลดในภายหลังได้อย่างไร?
knocte

2
นี่คือคำตอบที่ทันสมัยที่สุด ขอบคุณ
KJ50

4
@knoctepip install path-to-downloaded-package
Anton Khodak

5
ลองมาหลายวันแล้วและฉันคิดว่ามันยังคงพยายามดึง deps จากอินเทอร์เน็ตแทนที่จะใช้อันที่ดาวน์โหลดมา IIRC ฉันต้องใช้sudo pip install <path-to-downloaded-package> --no-index --find-links `pwd`
knocte

3
โปรดทราบว่าpip downloadยังรองรับ-r requirements.txtเพื่อให้คุณสามารถดาวน์โหลดทั้งหมดได้อย่างง่ายดายจากเครื่องที่เชื่อมต่ออินเทอร์เน็ตจากนั้นคัดลอกไปยังเครื่องออฟไลน์และติดตั้งตามที่ผู้แสดงความคิดเห็นข้างต้นกล่าวถึง
Hawkins

113

--download-cacheตัวเลือกที่ควรทำในสิ่งที่คุณต้องการ:

pip install --download-cache="/pth/to/downloaded/files" package

อย่างไรก็ตามเมื่อฉันทดสอบสิ่งนี้แพคเกจหลักดาวน์โหลดบันทึกและติดตั้งได้ แต่การอ้างอิงถูกบันทึกด้วยพา ธ url แบบเต็มเป็นชื่อ - ค่อนข้างน่ารำคาญ แต่มีtar.gzไฟล์ทั้งหมดอยู่ที่นั่น

--downloadตัวเลือกดาวน์โหลดแพคเกจหลักและการอ้างอิงและไม่ได้ติดตั้งใด ๆ ของพวกเขา ( หมายเหตุว่าก่อนที่จะมีรุ่น 1.1--downloadตัวเลือกไม่ได้ดาวน์โหลดอ้างอิง.)

pip install package --download="/pth/to/downloaded/files"

pipเค้าร่างเอกสารที่ใช้--downloadสำหรับการอย่างรวดเร็วและท้องถิ่นการติดตั้ง


5
ดีมันได้ผลจริง - แม้ว่าฉันจะติดแท็ก--no-installตัวเลือก และคุณถูกต้องเกี่ยวกับชื่อไฟล์ขี้ขลาด แต่อย่างน้อยไฟล์ที่อยู่ที่นั่น
John C

ครั้งสุดท้ายที่ฉันตรวจสอบ--downloadตัวเลือกดาวน์โหลดแพ็คเกจที่มีการอ้างอิง
Mohammad Niknam

3
--download-cache เลิกใช้งานแล้ว ใช้ pip install --download <dir> <pkg>
ostler.c

18
pip install --downloadในตอนนี้เลิกใช้แล้วและจะถูกลบออกจาก pip 10. pip.pypa.io/en/latest/reference/pip_download/#overview ใช้pip download somepackage.
Sнаđошƒаӽ

17
โดยเฉพาะสิ่งที่เทียบเท่าใหม่คือpip download -d <dir> { -r requirements.txt | <packagename> }
rrauenza

57

ฉันทำสิ่งนี้เสมอเพื่อดาวน์โหลดแพ็คเกจ:

pip install --download /path/to/download/to_packagename

หรือ

pip install --download=/path/to/packages/downloaded -r requirements.txt

และเมื่อฉันต้องการติดตั้งไลบรารีทั้งหมดที่ฉันเพิ่งดาวน์โหลดฉันจะทำสิ่งนี้:

pip install --no-index --find-links="/path/to/downloaded/dependencies" packagename

หรือ

pip install --no-index --find-links="/path/to/downloaded/packages" -r requirements.txt


อัปเดต

นอกจากนี้ในการรับแพ็คเกจทั้งหมดที่ติดตั้งในระบบเดียวคุณสามารถส่งออกทั้งหมดไปยังrequirement.txtที่จะใช้เพื่อรวมเข้ากับระบบอื่นเราทำสิ่งนี้:

pip freeze > requirement.txt

จากนั้นrequirement.txtสามารถใช้ด้านบนเพื่อดาวน์โหลดหรือทำสิ่งนี้เพื่อติดตั้งจากrequirement.txt:

pip install -r requirement.txt

อ้างอิง: ตัวติดตั้ง pip


6

ในเวอร์ชัน 7.1.2 pip จะดาวน์โหลดวงล้อของแพ็คเกจ (ถ้ามี) ดังต่อไปนี้:

pip install package -d /path/to/downloaded/file

ต่อไปนี้ดาวน์โหลดการแจกจ่ายซอร์ส:

pip install package -d /path/to/downloaded/file --no-binary :all:

สิ่งเหล่านี้ดาวน์โหลดการอ้างอิงเช่นกันหาก pip ทราบถึงสิ่งเหล่านี้ (เช่นหากpip show packageแสดงรายการไว้)


อัปเดต

เท่าที่สังเกตจากแอนตัน Khodak , pip downloadคำสั่งเป็นที่ต้องการตั้งแต่รุ่น 8 ในตัวอย่างข้างต้นนี้หมายถึงว่า/path/to/downloaded/fileความต้องการที่จะได้รับมีตัวเลือก-dเพื่อแทนที่installด้วยdownloadผลงาน


ฉันต้องพัฒนาใน windows และปรับใช้บน RH7 โดยไม่มีการเชื่อมต่ออินเทอร์เน็ตเลย ดังนั้นฉันจึงดาวน์โหลดแพ็คเกจต้นทางด้วย --no-binary: all:. อย่างไรก็ตามสิ่งนี้ล้มเหลวเมื่อรวบรวม django-pyodbc-azure == 2.0.4.1 เนื่องจากแพ็คเกจนี้ไม่มีแหล่งที่มา มีวิธีดาวน์โหลดซอร์สหรือหากไม่มีให้ดาวน์โหลด weehl
cwhisperer

6

ใช้pip download <package1 package2 package n>เพื่อดาวน์โหลดแพ็คเกจทั้งหมดรวมถึงการอ้างอิง

ใช้pip install --no-index --find-links . <package1 package2 package n>เพื่อติดตั้งแพ็คเกจทั้งหมดรวมถึงการอ้างอิง รับไฟล์ทั้งหมดจากCWD. มันจะไม่ดาวน์โหลดอะไรเลย


2

pip wheel เป็นอีกทางเลือกหนึ่งที่คุณควรพิจารณา:

pip wheel mypackage -w .\outputdir

จะดาวน์โหลดแพ็กเกจและการอ้างอิงไปยังไดเร็กทอรี (ไดเร็กทอรีการทำงานปัจจุบันตามค่าเริ่มต้น) แต่จะดำเนินการขั้นตอนเพิ่มเติมในการแปลงแพ็กเกจต้นทางใด ๆ ให้เป็นล้อ

รองรับไฟล์ความต้องการได้อย่างสะดวก:

pip wheel -r requirements.txt -w .\outputdir

เพิ่ม--no-depsอาร์กิวเมนต์หากคุณต้องการเฉพาะแพ็คเกจที่ร้องขอโดยเฉพาะ:

pip wheel mypackage -w .\outputdir --no-deps


-1

การติดตั้งแพ็คเกจ python ออฟไลน์

สำหรับผู้ใช้windows :

ในการดาวน์โหลดเป็นไฟล์ให้เปิดcmdของคุณแล้วทำสิ่งนี้:

cd <*the file-path where you want to save it*>

pip download <*package name*>

แพคเกจและการอ้างอิงจะถูกดาวน์โหลดในไดเร็กทอรีการทำงานปัจจุบัน

ในการติดตั้งจากไดเร็กทอรีการทำงานปัจจุบัน:

ตั้งค่าโฟลเดอร์ของคุณที่คุณดาวน์โหลดเป็น cwd จากนั้นทำตามสิ่งเหล่านี้:

pip install <*the package name which is downloded as .whl*> --no-index --find-links <*the file locaation where the files are downloaded*>

สิ่งนี้จะค้นหาการอ้างอิงในตำแหน่งนั้น


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