จะติดตั้งโมดูล pypi ด้วยตนเองโดยไม่ใช้ pip / easy_install ได้อย่างไร


95

ฉันต้องการใช้โมดูล gntpเพื่อแสดงการแจ้งเตือนเหมือนเครื่องปิ้งขนมปังสำหรับซอฟต์แวร์ C / C ++ ฉันต้องการจัดแพคเกจการอ้างอิงทั้งหมดเพื่อให้ซอฟต์สามารถดำเนินการได้ด้วยตนเองบนคอมพิวเตอร์เครื่องอื่น

โมดูล gntp สามารถใช้ได้ผ่านตัวติดตั้ง pip เท่านั้นซึ่งไม่สามารถใช้งานได้ (คอมพิวเตอร์ที่ใช้งานซอฟต์ไม่มีการเชื่อมต่ออินเทอร์เน็ต): ฉันจะติดตั้งจากแหล่งที่มาได้อย่างไร?

ฉันไม่ต้องการบังคับให้ผู้ใช้ติดตั้ง easy_install / pip และเพิ่มเส้นทาง pip ไปยัง% PATH ด้วยตนเอง

PS: ฉันใช้ Python 2.7 บนเครื่อง Windows


4
อาจจะด้วยpython setup.py install?
Nicolas

คำตอบ:


153
  1. ดาวน์โหลดแพคเกจ
  2. เปิดเครื่องรูดถ้าซิป
  3. cd ลงในไดเร็กทอรีที่มี setup.py
  4. หากมีคำแนะนำในการติดตั้งอยู่ในเอกสารประกอบที่ระบุไว้ในที่นี้โปรดอ่านและปฏิบัติตามคำแนะนำอื่น ๆ
  5. พิมพ์ python setup.py install

คุณอาจต้องการสิทธิ์ของผู้ดูแลระบบสำหรับขั้นตอนที่ 5 สิ่งที่คุณทำที่นี่ขึ้นอยู่กับระบบปฏิบัติการ ตัวอย่างเช่นใน Ubuntu คุณจะพูดว่าsudo python setup.py install

แก้ไข - ขอบคุณ kwatford (ดูความคิดเห็นแรก)

หากต้องการหลีกเลี่ยงความต้องการสิทธิ์ของผู้ดูแลระบบในขั้นตอนที่ 5 ข้างต้นคุณอาจสามารถใช้แฟล็ก --user ได้ ด้วยวิธีนี้คุณสามารถติดตั้งแพ็คเกจสำหรับผู้ใช้ปัจจุบันเท่านั้น

เอกสารกล่าวว่า:

ไฟล์จะถูกติดตั้งลงในไดเร็กทอรีย่อยของไซต์ USER_BASE (ต่อจากนี้จะเขียนเป็นฐานข้อมูลผู้ใช้) โครงร่างนี้ติดตั้งโมดูล Python แท้และโมดูลส่วนขยายในตำแหน่งเดียวกัน (หรือที่เรียกว่า site.USER_SITE) นี่คือค่าของ UNIX รวมถึง Mac OS X:

สามารถดูรายละเอียดเพิ่มเติมได้ที่นี่: http://docs.python.org/2.7/install/index.html


8
โดยปกติ pip / easy_install / setup.py จะยอมรับ--userแฟล็กเพื่อติดตั้งแพ็กเกจสำหรับผู้ใช้ปัจจุบันเท่านั้นโดยทั่วไปจะข้ามความจำเป็นในการเข้าถึงของผู้ดูแลระบบ
kwatford

3
ด้วยเหตุผลบางอย่างฉันเห็นสิ่งนี้: ImportError: No module named 'setuptools'ฉันพบว่าที่นี่: pypi.python.org/pypi/setuptools/1.1.6แม้ว่าการติดตั้งจะทำให้ฉันมีข้อผิดพลาดข้อยกเว้น แต่ตอนนี้โมดูล websocket ไม่ทำงานเลยฉันคิดว่าฉันจะให้ ใน Python 3.3 บน Windows ณ จุดนี้
SSH

2
@SSHThis: ฉันได้ผลลัพธ์เดียวกันกับแพ็คเกจที่ติดตั้งฉันพยายามจะทำงาน การเปิดใช้คำฟุ่มเฟือยทำให้ "เนื่องจากมีการติดตั้งการแจกจ่ายนี้ - หลายเวอร์ชัน [... ]" ซึ่งเป็นเท็จ (มีเพียงเวอร์ชันเดียวของ python ที่ติดตั้งที่นี่) และไม่ช่วยเหลือ (โดยใช้เอกสาร "python -m easy_install [... ] "ไม่มีความช่วยเหลือเลย) ฉันอยู่กับคุณ - Python ใช้ไม่ได้
Eric Towers

1
ฉันเดาว่าpip install target-packageโดยปกติจะติดตั้ง / อัปเดตแพ็คเกจอื่น ๆ โดยอัตโนมัติซึ่งขึ้นอยู่กับแพ็กเกจเป้าหมาย สิ่งนี้เกิดขึ้นในกรณีของวิธีการ setup.py หรือไม่ หรือ zip ของแพ็คเกจมีการอ้างอิงทั้งหมดด้วยหรือไม่? และคุณหมายความว่าเราควรดาวน์โหลด python wheel แทน zips หรือไม่? ชอบสิ่งเหล่านี้สำหรับ numpy? หากไม่พบที่จะหาซิป (เช่น numpy)? (ฉันถามทั้งหมดนี้เพราะฉันถูกบังคับให้ทำงานหลังพร็อกซีของ บริษัท ที่ฉันต้องดิ้นรนเพื่อการดาวน์โหลดทุกครั้ง: '()
Mahesha999

3
คุณไม่สามารถดาวน์โหลดแพ็คเกจขณะออฟไลน์ได้ ... หากคุณต้องการดาวน์โหลดในขณะที่อยู่นอกเครือข่ายงานโง่ ๆ ของคุณฉันอาจจะทำสิ่งต่อไปนี้: 1. สร้าง Virtualenv 2. python setup.py installหรือpip installทุกสิ่งที่คุณต้องการ 3. เรียกใช้ pip freeze เพื่อรับรายการแพ็คเกจทั้งหมดและทุกเวอร์ชัน คุณสามารถจัดเก็บสิ่งนี้ไว้ในไฟล์ (ตามปกติเรียกว่า requirements.txt 'จากนั้นหากคุณต้องการดาวน์โหลดแพ็กเกจเพื่อให้คุณสามารถคัดลอกไปยังเครื่องอื่นที่คุณสามารถpip download [options] -r <requirements file>ใช้ได้นี่ไม่ใช่วิธีที่มีประสิทธิภาพสูงสุด แต่ง่าย
Sheena

5

เพื่ออธิบายเพิ่มเติมคำตอบ Sheena ของผมจำเป็นต้องมีการติดตั้งเครื่องมือติดตั้งเป็นพึ่งพาของเครื่องมืออื่นเช่นมากกว่า itertools

ดาวน์โหลด

คลิกClone or downloadปุ่มและเลือกวิธีการของคุณ ฉันวางสิ่งเหล่านี้ลงในdev/py/libsไดเร็กทอรีในโฮมไดเร็กทอรีผู้ใช้ของฉัน ไม่สำคัญว่าจะถูกบันทึกไว้ที่ใดเพราะจะไม่มีการติดตั้งไว้ที่นั่น

การติดตั้งเครื่องมือติดตั้ง

คุณจะต้องเรียกใช้สิ่งต่อไปนี้ภายในไดเร็กทอรีsetup-tools

python bootstrap.py
python setup.py install

การติดตั้งการอ้างอิงทั่วไป

ตอนนี้คุณสามารถไปที่ไดเรคโคทรี itertools มากขึ้นและติดตั้งได้ตามปกติ

  1. ดาวน์โหลดแพคเกจ
  2. แกะกล่องออกหากเป็นไฟล์เก็บถาวร
  3. นำทาง ( cd ...) ไปยังไดเร็กทอรีที่มีsetup.py
  4. หากมีคำแนะนำในการติดตั้งอยู่ในเอกสารประกอบที่มีอยู่นี้โปรดอ่านและปฏิบัติตามคำแนะนำอื่น ๆ
  5. พิมพ์: python setup.py install

2

แม้ว่าคำตอบของ Sheenaจะได้ผล แต่pipก็ไม่ได้หยุดอยู่แค่นั้น

จากคำตอบของ Sheena:

  1. ดาวน์โหลดแพคเกจ
  2. เปิดเครื่องรูดถ้าซิป
  3. cd ลงในไดเร็กทอรีที่มี setup.py
  4. หากมีคำแนะนำในการติดตั้งอยู่ในเอกสารประกอบที่นี่โปรดอ่านและปฏิบัติตามคำแนะนำอื่น ๆ
  5. พิมพ์ python setup.py install

ในตอนท้ายคุณจะพบ.eggไฟล์ในรูปแบบsite-packages. ในฐานะผู้ใช้สิ่งนี้ไม่ควรรบกวนคุณ คุณสามารถimportและuninstallแพคเกจได้ตามปกติ อย่างไรก็ตามหากคุณต้องการดำเนินการดังpipกล่าวคุณสามารถดำเนินการตามขั้นตอนต่อไปนี้

ในsite-packagesไดเรกทอรี

  1. unzip <.egg file>
  2. เปลี่ยนชื่อEGG-INFOไดเร็กทอรีเป็น<pkg>-<version>.dist-info
  3. ตอนนี้คุณจะเห็นไดเร็กทอรีแยกต่างหากพร้อมชื่อแพ็คเกจ <pkg-directory>
  4. find <pkg-directory> > <pkg>-<version>.dist-info/RECORD
  5. find <pkg>-<version>.dist-info >> <pkg>-<version>.dist-info/RECORD. >>คือการป้องกันการเขียนทับ

ตอนนี้กำลังมองหาที่ไดเรกทอรีคุณจะไม่ตระหนักถึงคุณโดยไม่ต้องติดตั้งsite-packages pipต้องการเพียงแค่ทำตามปกติuninstallpip uninstall <pkg>


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