การติดตั้ง Pip-3.2 บน Cygwin


85

ฉันติดตั้ง Python 3 บน Cygwin แล้ว อย่างไรก็ตามฉันไม่สามารถติดตั้งแพ็คเกจ Python 3 ผ่านpipไฟล์. มีวิธีทำไหม?


1
ทำไมจะไม่ล่ะ? คุณได้ติดตั้ง pip สำหรับการติดตั้ง python นี้หรือไม่ คุณได้รับข้อผิดพลาดอะไร
mata

ติดตั้ง Pip แล้ว แต่ติดตั้งแพคเกจเวอร์ชัน python 2 ตัวอย่างเช่นสคริปต์ของฉันที่ต้องการคืนค่า pyyaml ImportError: No module named yamlแม้ว่าจะรันสำเร็จแล้วpip install pyyamlก็ตาม
David Y. Stephenson

1
จากนั้นpipสคริปต์จะไม่ทำงานด้วยเวอร์ชัน python ที่ถูกต้อง ลอง/path/to/python3 -m pip install ...แทน ตรวจสอบ shebang ของสคริปต์ pip ด้วย
mata

@mata FYI มีการติดตั้ง Python 2 ด้วย ผลตอบแทนusr/bin/python3 -m pip install pyyaml /usr/bin/python3: No module named pipดังนั้นคำถามเดิมของฉัน วิธีการติดตั้ง pip-3 บน cygwin
David Y. Stephenson

1
python3 -m ensurepipและpython2 -m ensurepip. ดูpython.org/dev/peps/pep-0453
gavenkoa

คำตอบ:


129

1) ขณะติดตั้ง cygwin ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง python / python-setuptools จากรายการ การดำเนินการนี้จะติดตั้งแพ็คเกจ "easy_install"

2) พิมพ์คำสั่งต่อไปนี้:

easy_install-a.b pip   

คุณต้องแทนที่a.bด้วยเวอร์ชัน python ของคุณซึ่งอาจเป็น 2.7 หรือ 3.4 หรืออย่างอื่นก็ได้


4
คำตอบนี้ใช้ได้ผลดีสำหรับฉัน ฉันต้องทำตามขั้นตอนเพิ่มเติมสองสามขั้นตอนเพราะฉันทำงานที่มหาวิทยาลัย: ขั้นแรกฉันไปที่เส้นทางการติดตั้งของฉัน (c: / cygwin64 / bin /) จากนั้นให้เสร็จสมบูรณ์อัตโนมัติช่วยฉันค้นหาไฟล์ติดตั้งง่ายที่ชื่อแตกต่างกันเล็กน้อย: easy_install 2.7.9
Protomancer

6
ฉันทำสิ่งนี้เพื่อจบลงในสภาพที่ไม่มีไข่:easy_install-2.7 pip && pip install 'pip<8' && pip install pip --upgrade
Anthony Sottile

6
สำหรับ python3 ใช้ python3 & python3-setuptoolsแพคเกจ เห็นได้ชัด แต่เราสามารถลืม python 3 -setuptools
simon

2
และอย่าลืมเวอร์ชัน (เช่น -2.7) ฉันมีการแจกจ่าย python อื่นในคอมพิวเตอร์ของฉันและ 'easy_install' เรียกใช้สิ่งนั้นแทนที่จะเป็นของ cygwin
jtbr

44

หากคุณมีการติดตั้ง python มากกว่าหนึ่งรายการคุณต้องติดตั้ง pip (และอาจเป็น setuptools ด้วย) สำหรับการติดตั้งแต่ละครั้งแยกกัน
ในการทำเช่นนั้นก่อนอื่นคุณสามารถดาวน์โหลดez_setup.pyและเรียกใช้ด้วย python3:

/usr/bin/python3 ez_setup.py

สิ่งนี้ควรติดตั้ง setuptools และสร้างeasy_installสคริปต์สำหรับเวอร์ชัน python ของคุณเช่น/usr/bin/easy_install-3.2ซึ่งคุณสามารถใช้เพื่อติดตั้ง pip:

/usr/bin/easy_install-3.2 pip

สิ่งนี้จะติดตั้ง pip ลงในไดเร็กทอรีแพ็กเกจไซต์ python3 ของคุณและสร้างสคริปต์อีกครั้ง/usr/bin/pip-3.2ซึ่งคุณสามารถใช้เพื่อติดตั้งแพ็กเกจสำหรับเวอร์ชัน python นี้

หรือคุณสามารถปฏิบัติตามคำแนะนำการติดตั้งจากที่นี่และที่นี่


2
ยอดเยี่ยม! ฉันสามารถแก้ปัญหา cygwin ของฉันได้ตามคำตอบนี้

ฉันได้รับ "OSError: [Errno 13] Permission ถูกปฏิเสธ" ข้อผิดพลาดนี้ขณะติดตั้งใน cygwin ฉันมีสิทธิ์ผู้ดูแลระบบในเครื่องนั้น
arulraj.net

2
ลิงก์ไปยัง ez_setup.py หมดแล้ว
spartygw

29

ฉันคิดว่าคำแนะนำการติดตั้งทางเลือกที่เชื่อมโยงโดย mata นั้นง่ายที่สุด:

การติดตั้ง pip ปลอดภัยดาวน์โหลดget-pip.py

จากนั้นเรียกใช้สิ่งต่อไปนี้ (ซึ่งอาจต้องมีการเข้าถึงของผู้ดูแลระบบ):

python get-pip.py

2
FWIW นี้ดูเหมือนว่าจะทำอะไรเงียบ ๆ ภายใต้ Cygwin - ไม่แน่ใจว่าทำไม :(
แอนโธนี Sottile

2
ทำงานภายใต้ Babun บน Windows 10 x64
xizdaqrian

15

เนื่องจาก OP พูดถึง Python3 โดยเฉพาะฉันคิดว่าเราจำเป็นต้องระบุว่าในกรณีที่ผู้ใช้ติดตั้ง Python2 ไว้แล้วซึ่งเป็นไปได้มาก

# If you don't have Python3 already, use apt-cyg:
apt-cyg install python3

# First update pip, pip2 
pip2 install --upgrade pip 

# Install pip3:
python3 -m ensurepip

# Finally update pip3:
pip3 install --upgrade pip

$ pip3 -V
pip 9.0.1 from /usr/lib/python3.4/site-packages (python 3.4)

BTW. มีapt-cygหลายส้อมแต่สิ่งที่ดีที่สุดคือของkou1okadaคุณจะรักมัน


แก้ไข: 2018-11-15

เนื่องจากฉันไม่ได้ใช้Virtualenvเมื่อเร็ว ๆ นี้ฉันต้องรีเฟรชการติดตั้ง Cygwin Python3 ของฉันและตระหนักถึงบางสิ่งในกระบวนการที่ควรจะชัดเจน แต่สามารถลืมได้อย่างง่ายดาย

  • เมื่อติดตั้งและใช้ Python3 บน Cygwin (และอาจอยู่ใน * nix distros อื่น ๆ ส่วนใหญ่) ให้ติดตั้งเฉพาะล่าม Python3 พื้นฐานเป็นแพ็คเกจ Cygwin จากนั้นใช้ตัวติดตั้งpipเท่านั้น

  • หลังจากที่คุณได้ติดตั้งหรือปรับปรุงแพคเกจ python3 ใด ๆ โดยใช้pipผู้จัดการแพคเกจ Cygwin "Incomplete"ของคุณจะบ่นว่าแพคเกจของคุณ นั่นเป็นเพราะpipได้แทนที่ / อัพเดตไฟล์ในแพ็กเกจนั้น ตรวจสอบกับ: cygcheck.exe -c |grep Incomplete.
    อย่าติดตั้งแพ็คเกจเหล่านั้นซ้ำด้วย Cygwin

# cygcheck.exe -c |grep Incomplete
python3-setuptools      34.3.2-1         Incomplete

สิ่งที่ฉันทำคือการล้างแพ็คเกจ Cygwin ที่เกี่ยวข้องกับ python3 ทั้งหมดยกเว้น Python3 เอง จากนั้นฉันติดตั้งสิ่งเดียวที่จำเป็น: python3-setuptools.

# apt-cyg remove python3-setuptools
apt-cyg install python3-setuptools

# Fix pip3 symlink (or just pip if you don't have python2)
ln -s /usr/bin/pip3.6 /usr/bin/pip3

# That also installs the Cygwin packages:  
# python3-appdirs, python3-packaging, python3-pyparsing, python3-six

# Now, update setuptools with pip:
pip3 install -U --force-reinstall --only-binary=:all: --no-clean --no-cache-dir setuptools

# pip list |grep setuptools
setuptools          40.5.0

ที่ควรมีการติดตั้งการอ้างอิงsetuptoolsทั้งหมดด้วยการอัปเดตล่าสุด

จากนี้ไปให้ทำสิ่งที่ตัวเองชอบและเริ่มใช้สภาพแวดล้อมเสมือนจริง


เป็นensurepipสิ่งจำเป็นเพราะของ Cygwin? โดยปกติจะpipอยู่บนเรือดูที่นี่
ทิโม

@Timo สำหรับฉันแล้วไม่ว่าด้วยเหตุผลใดก็ตามที่ฉันขาด pip3 สำหรับ python3
Lepidopteron

ตราบเท่าที่คุณpipติดตั้งคุณสามารถเชื่อมโยงเข้าได้ตลอดเวลา/usr/bin/แต่บางทีการใช้โปรแกรมแก้ไขsurepip แบบเนทีฟอาจหรูหรากว่า IDK หากฉันมีเวอร์ชันเก่าอยู่แล้วหรือติดตั้งมาพร้อมกับsetuptoolsแต่ฉันไม่ได้ensurepipติดตั้งแพ็คเกจ
not2qubit

2
+1 สำหรับการแนะนำทางแยก apt-cyg ของ kou1okada เป็นผลิตภัณฑ์ที่มีคุณสมบัติครบถ้วนและได้รับการดูแลอย่างดีที่สุดโดยใช้มาหลายปีแล้ว
Prometheus

2

บน windows คุณสามารถใช้ pip เพื่อติดตั้งแพ็คเกจ หากคุณมีการติดตั้ง python หลายรายการภายใต้ cygwin ให้ระบุเส้นทาง python แบบเต็มเช่น Python 2

/usr/bin/python2.7 -m pip install pyyaml

Python 3

/usr/bin/python3.6 -m pip install pyyaml

ในกรณีที่คุณไม่ได้ติดตั้ง pip ให้ติดตั้งโดยใช้คำสั่งด้านล่าง

/usr/bin/python2.7 -m ensurepip 

หรือ

/usr/bin/python3.6 -m ensurepip

0

ฉันเพิ่งเรียนรู้โดยได้รับแรงบันดาลใจจากhttps://www.scivision.co/install-pip-in-cygwin/และคำตอบก่อนหน้านี้แทนที่จะใช้ pip คุณต้องใช้ pip2 สำหรับ python2 หรือ pip3 สำหรับ python 3 ใน cygwin บน windows สงสัยเรื่องนี้ทั้งวัน ...

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