ปัญหา pip ในการติดตั้งเกือบทุกไลบรารี


106

ฉันมีช่วงเวลาที่ยากลำบากในการใช้ pip เพื่อติดตั้งเกือบทุกอย่าง ฉันยังใหม่กับการเขียนโค้ดดังนั้นฉันจึงคิดว่านี่อาจเป็นสิ่งที่ฉันทำผิดและเลือกที่จะไม่ใช้ easy_install เพื่อทำสิ่งที่ฉันต้องการให้มากที่สุดซึ่งโดยทั่วไปได้ผล อย่างไรก็ตามตอนนี้ฉันกำลังพยายามดาวน์โหลดไลบรารี nltk และงานก็ไม่เสร็จ

ฉันพยายามป้อน

sudo pip install nltk

แต่ได้รับการตอบสนองดังต่อไปนี้:

/Library/Frameworks/Python.framework/Versions/2.7/bin/pip run on Sat May  4 00:15:38 2013
Downloading/unpacking nltk

  Getting page https://pypi.python.org/simple/nltk/
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link]/simple/nltk/ when looking for download links for nltk

  Getting page [need more reputation to post link]/simple/
  Could not fetch URL https://pypi.python. org/simple/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Cannot fetch index base URL [need more reputation to post link]

  URLs to search for versions for nltk:
  * [need more reputation to post link]
  Getting page [need more reputation to post link]
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Could not find any downloads that satisfy the requirement nltk

No distributions at all found for nltk

Exception information:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/basecommand.py", line 139, in main
    status = self.run(options, args)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/commands/install.py", line 266, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 1026, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/index.py", line 171, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
DistributionNotFound: No distributions at all found for nltk

--easy_install installed fragments of the library and the code ran into trouble very quickly upon trying to run it.

มีความคิดเห็นเกี่ยวกับปัญหานี้หรือไม่? ฉันขอขอบคุณสำหรับความคิดเห็นเกี่ยวกับวิธีที่ฉันจะทำให้ pip ทำงานได้หรือบางอย่างเพื่อแก้ไขปัญหาในระหว่างนี้


2
สำหรับผู้ที่ได้รับข้อผิดพลาดนี้[SSL: TLSV1_ALERT_PROTOCOL_VERSION]สำหรับทุกคนpip installนั่นเป็นเพราะการเลิกใช้ TLS ล่าสุดโดยไซต์ Python.org ดูคำตอบนี้
Anupam

คำตอบ:


138

ฉันพบว่าเพียงพอที่จะระบุโฮสต์ pypi ที่เชื่อถือได้ ตัวอย่าง:

pip install --trusted-host pypi.python.org pytest-xdist
pip install --trusted-host pypi.python.org --upgrade pip

สิ่งนี้แก้ไขข้อผิดพลาดต่อไปนี้:

  Could not fetch URL https://pypi.python.org/simple/pytest-cov/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600) - skipping
  Could not find a version that satisfies the requirement pytest-cov (from versions: )
No matching distribution found for pytest-cov

อัปเดตเดือนเมษายน 2018 : สำหรับทุกคนที่ได้รับข้อผิดพลาด TLSV1_ALERT_PROTOCOL_VERSION: ไม่มีส่วนเกี่ยวข้องกับปัญหาโฮสต์ / การยืนยันที่เชื่อถือได้ของ OP หรือคำตอบนี้ แต่ข้อผิดพลาด TLSV1 เป็นเพราะล่ามของคุณไม่รองรับ TLS v1.2 คุณต้องอัปเกรดล่ามของคุณ ดูตัวอย่างhttps://news.ycombinator.com/item?id=13539034 , http://pyfound.blogspot.ca/2017/01/time-to-upgrade-your-python-tls-v12.htmlและhttps :

อัปเดตกุมภาพันธ์ 2019 : สำหรับบางคนการอัพเกรด pip อาจเพียงพอ หากข้อผิดพลาดข้างต้นทำให้คุณไม่สามารถดำเนินการนี้ได้ให้ใช้ get-pip.py เช่นบนลินุกซ์

curl https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

รายละเอียดเพิ่มเติมที่https://pip.pypa.io/en/stable/installing/


4
สิ่งนี้ใช้ได้ผลกับฉันหลายปีต่อมาในระบบ windows
Allen Butler

23
ฉันยังคงได้รับข้อผิดพลาดCould not fetch URL https://pypi.python.org/simple/pytest-xdist/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
Sankalp

3
ฉันได้อัปเดตคำตอบเพื่อพูดคุยเกี่ยวกับ TLSV1 เนื่องจากเป็นปัญหาที่แยกจากกันโดยสิ้นเชิง
Oliver

8
@peterpod ดูคำตอบนี้: stackoverflow.com/a/49769015/1526703
Anupam


40

ฉันใช้เวอร์ชัน pip 9.0.1และมีปัญหาเดียวกันคำตอบทั้งหมดข้างต้นไม่สามารถแก้ปัญหาได้และฉันไม่สามารถติดตั้ง python / pip ด้วย brew ด้วยเหตุผลอื่น

การอัพเกรด pip เพื่อ9.0.3แก้ไขปัญหา และเนื่องจากฉันไม่สามารถอัพเกรด pip ด้วย pip ฉันจึงดาวน์โหลดซอร์สและติดตั้งด้วยตนเอง

  1. ดาวน์โหลด pip เวอร์ชันที่ถูกต้องจาก - https://pypi.org/simple/pip/
  2. sudo python3 pip-9.0.3.tar.gz - ติดตั้ง pip

หรือคุณสามารถติดตั้ง pip รุ่นใหม่ด้วย:

curl https://bootstrap.pypa.io/get-pip.py | python

ดังที่กล่าวไว้ในความคิดเห็นของฉันเกี่ยวกับคำตอบของ @ apatsekin สิ่งนี้เกิดขึ้นเนื่องจากการเลิกใช้งาน TLS ล่าสุดสำหรับ pip ดูรายละเอียดคำตอบนี้
Anupam

ขอบคุณ .. ยืนยันได้เหมือนกันว่าใช้ได้กับ Python 2 ด้วย (กำลังทำงานกับ ATM รุ่นเก่า)
กระวาน

หาก conda / anaconda เป็นสาเหตุที่คุณไม่สามารถใช้ brew หรือ pip เพื่ออัปเดต pip ได้คุณสามารถใช้conda install pipเพื่อติดตั้ง / อัพเกรด pip ที่คุณใช้กับสภาพแวดล้อม conda ของคุณได้ คุณควรทำสิ่งนี้ในสภาพแวดล้อม root / base conda ของคุณหากคุณติดตั้ง conda
hobs

1
เพิ่งติดตั้ง pipcurl https://bootstrap.pypa.io/get-pip.py | python
Sumeet Gohil

32

Pypi ลบการรองรับ TLS เวอร์ชันที่น้อยกว่า 1.2

คุณต้องติดตั้ง Pip ใหม่ทำ

curl https://bootstrap.pypa.io/get-pip.py | python

หรือสำหรับ Global Python:

curl https://bootstrap.pypa.io/get-pip.py | sudo python

วิธีนี้ช่วยแก้ปัญหาใน Mac OS เวอร์ชัน Sierra 10.12.6 ขอบคุณ!
Zhenhua

ใช้ได้กับฉันใน High Sierra ขอบคุณ.
rustyshackleford

30

ฉันใช้เวอร์ชัน pip3 9.0.1และไม่สามารถติดตั้งแพ็คเกจใด ๆ เมื่อเร็ว ๆ นี้ผ่านคำสั่งpip3 installนี้ผ่านคำสั่ง

เวอร์ชันระบบปฏิบัติการ Mac: EI Captain 10.11.5กัปตัน

เวอร์ชันหลาม: 3.5

ฉันลองใช้คำสั่ง:

curl https://bootstrap.pypa.io/get-pip.py | python

มันไม่ได้ผลสำหรับฉัน

ดังนั้นฉันจึงถอนการติดตั้ง pip รุ่นเก่าและติดตั้งเวอร์ชันใหม่ล่าสุด10.0.0โดยป้อนสิ่งนี้:

python3 -m pip uninstall pip setuptools
curl https://bootstrap.pypa.io/get-pip.py | python3

ตอนนี้ปัญหาของฉันได้รับการแก้ไขแล้ว หากคุณใช้ python2 คุณสามารถแทนที่ python3 ด้วย python ได้ ฉันหวังว่ามันจะเหมาะกับคุณ

อย่างไรก็ตามสำหรับมือใหม่อย่างฉันคุณต้องป้อนรหัส: sudo -i

เพื่อให้ได้รูทที่ถูกต้อง :) ขอให้โชคดี!


จากข้างต้นกำลังจะลองทำความสะอาดการติดตั้ง python และ pip ใหม่ แต่มันใช้ได้ผลสำหรับฉัน ขอบคุณ!
MikeJannino

อย่าเพิกเฉย "sudo -i"
Dung

27

คุณอาจเห็นข้อผิดพลาดนี้ ; ดูที่นี่ด้วย

วิธีแก้ปัญหาที่ง่ายที่สุดคือการปรับลดจุดหนึ่งที่ไม่ได้ใช้ easy_install pip==1.2.1SSL: สิ่งนี้ทำให้คุณเสียประโยชน์ด้านความปลอดภัยจากการใช้ SSL วิธีแก้ปัญหาที่แท้จริงคือการใช้การแจกจ่าย Python ที่เชื่อมโยงกับไลบรารี SSL ล่าสุด


1
ขอบคุณ Dougal แต่ pip 1.2.1 ไม่ได้ผลเช่นกัน - คุณช่วยแจ้งให้ฉันทราบได้อย่างไรว่าฉันจะอัปเดตการแจกจ่าย python เป็นไลบรารี ssl ล่าสุดได้อย่างไร
contentclown

ที่จริงฉันเพิ่งมีทุกอย่างที่จะทำงานได้ในตอนนี้ ขอบคุณสำหรับความช่วยเหลือ Dougal!
contentclown

7
@ user2348946 คุณทำอะไรเพื่อให้สิ่งนี้มีประโยชน์กับผู้คนในอนาคต
djs

1
@DannyStaple ใช่นั่นคือสิ่งที่ฉันแนะนำ แน่นอนว่าการใช้ Python แบบไม่ติดตั้งระบบไม่ใช่เรื่องยากมากนัก ฉันใช้Anacondaเป็นการส่วนตัวซึ่งเหมาะสำหรับการใช้งานเชิงตัวเลข แต่จะใช้ได้ผลกับทุกอย่าง
djs

1
@ user13107 ครับ; ตามที่ระบุไว้ในความคิดเห็นเกี่ยวกับคำตอบที่ยอมรับตอนนี้ PyPI ต้องการ TLS 1.2 คุณจะต้องอัปเดตการติดตั้ง Python ของคุณ
djs

18

อีกสาเหตุหนึ่งของข้อผิดพลาด SSL อาจเป็นเวลาของระบบที่ไม่ดี - ใบรับรองจะไม่ตรวจสอบหากอยู่ไกลจากปัจจุบันมากเกินไป


ขอบคุณ!! นั่นเป็นทางออกเดียวที่ใช้ได้ผลสำหรับฉัน นาฬิกาเซิร์ฟเวอร์ของฉันถูกปิด
Adam Spires



6

ในการติดตั้งแพ็คเกจอื่นฉันต้องใช้ pip เวอร์ชันล่าสุดเนื่องจาก9.0.1มีปัญหา SSL นี้ ในการอัพเกรด pip ด้วย pip เองฉันต้องแก้ปัญหา SSL นี้ก่อน ในการกระโดดออกจากวงวนที่ไม่มีที่สิ้นสุดนี้ฉันพบวิธีเดียวที่เหมาะกับฉัน

  1. ค้นหา pip เวอร์ชันล่าสุดในหน้านี้: https://pypi.org/simple/pip/
  2. ดาวน์โหลด.whlไฟล์ของเวอร์ชันล่าสุด
  3. ใช้ pip เพื่อติดตั้ง pip ล่าสุด (ใช้เวอร์ชันล่าสุดของคุณเองที่นี่)

sudo pip ติดตั้ง pip-10.0.1-py2.py3-none-any.whl

ตอนนี้ pip เป็นเวอร์ชันล่าสุดและสามารถติดตั้งอะไรก็ได้


6

วิธีแก้ไข - ติดตั้งแพ็คเกจใด ๆ โดยทำเครื่องหมายโฮสต์ด้านล่างที่เชื่อถือได้

  • pypi.python.org
  • pypi.org
  • files.pythonhosted.org

วิธีแก้ปัญหาชั่วคราว

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org {package name}

วิธีแก้ปัญหาถาวร - อัปเดต PIP ของคุณ (ปัญหากับเวอร์ชัน 9.0.1) เป็นเวอร์ชันล่าสุด

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org pytest-xdist

python -m pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org --upgrade pip

3

macOS Sierra 10.12.6 ไม่สามารถติดตั้งอะไรผ่าน pip (python ติดตั้งผ่าน homebrew) คำตอบทั้งหมดข้างต้นไม่ได้ผล

ในที่สุดการอัปเกรดจาก python 3.5 เป็น 3.6 ก็ใช้งานได้

brew update
brew doctor #(in case you see such suggestion by brew)

จากนั้นทำตามคำแนะนำเพิ่มเติมโดยการชงนั่นคือเขียนทับลิงก์ไปยัง python


1
ถ้าคุณอยู่ในระบบปฏิบัติการ Mac OS 10.12 คุณปัญหาเดิมอาจจะจริงที่เกี่ยวข้องกับการเลิกใช้ TLS เมื่อเร็ว ๆ pipนี้ ดูรายละเอียดในโพสต์นี้ pipได้หยุดสนับสนุนโปรโตคอลความปลอดภัยรุ่นเก่าในเวอร์ชัน 10.12 และเวอร์ชันเก่ากว่า
Anupam

3

ผมมีปัญหาเหมือนกัน. ฉันเพิ่งอัปเดต python จาก2.7.0เป็น2.7.15 2.7.15มันช่วยแก้ปัญหาได้

คุณสามารถดาวน์โหลดที่นี่


ฉันเพิ่งแก้ไขสิ่งนี้เป็นครั้งที่ 10 แม้จะเข้าใจปัญหาบน OSX เป็นอย่างดีและรู้ว่าอะไรคือความล้มเหลว "วิธีการแก้ปัญหา" แต่ละครั้งเป็นรูปแบบที่แตกต่างกันในอดีต ครั้งนี้การโหวตไปที่ 2.7.15 การติดตั้งบน OSX ง่ายและมีประสิทธิภาพ นอกจากนี้ยังมีบันทึกย่อที่เขาเผยแพร่เกี่ยวกับปัญหา SSL / OpenSSH ไชโยและขอบคุณมาก!
Marc

3

ดังที่โพสต์ไว้ข้างต้นโดย blackjar บรรทัดด้านล่างใช้ได้ผลสำหรับฉัน

pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install xxx

คุณต้องให้ทั้งสาม--trusted-host optionsอย่าง ฉันพยายามเพียงคนแรกหลังจากดูคำตอบ แต่มันไม่ได้ผลสำหรับฉันแบบนั้น


2

คุณยังสามารถใช้ conda เพื่อติดตั้งแพ็คเกจ: ดูhttp://conda.pydata.org

conda install nltk

วิธีที่ดีที่สุดในการใช้ conda คือดาวน์โหลด Miniconda แต่คุณสามารถลองได้เช่นกัน

pip install conda
conda init
conda install nltk

7
ในความเป็นธรรมหากpip installไม่ได้ผลแนะนำให้ติดตั้งตัวจัดการแพ็คเกจอื่นผ่าน pip คือ ... เอาล่ะคุณก็รู้
Dave Newton

สิ่งนี้ใช้ได้ผลจริงสำหรับฉัน ฉันติดตั้งอนาคอนดาหลังจากติดตั้ง python ฉันไม่รู้เลยว่า anaconda มีตัวติดตั้งเป็นของตัวเองจนกว่าฉันจะอ่านสิ่งนี้ ดังนั้นนี่คือคำตอบที่ได้ผลสำหรับฉัน ความคิดเห็นของ Travis กล่าวถึงไก่ / ไข่เพราะเขาแนะนำให้ติดตั้งมินิคอนดา
ต่อผู้ใช้ใหม่

2

สำหรับฉัน pip ล่าสุด (1.5.6) ทำงานได้ดีกับแพ็คเกจ nltk ที่ไม่ปลอดภัยหากคุณบอกว่าอย่าจู้จี้จุกจิกเกี่ยวกับความปลอดภัย:

pip install --upgrade --force-reinstall --allow-all-external --allow-unverified ntlk nltk

นี่เป็นคำตอบเก่า ๆ คุณใช้เวอร์ชันpipไหน
เตา

1
ฉันเดาว่าคนสุดท้าย ฉันคิดว่าฉันแก้ปัญหาได้โดยการถอนการติดตั้งทุกอย่าง (Python 2.7, pip ฯลฯ ) และติดตั้งทุกอย่างซ้ำแล้วซ้ำเล่า
DaniPaniz

2

พยายาม

pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install xxx 

และในที่สุดก็ได้ผลไม่ค่อยเข้าใจว่าทำไมโดเมน pypi.python.org จึงเปลี่ยนไป


1

หากคุณกำลังเชื่อมต่อผ่านพร็อกซีให้ดำเนินการexport https_proxy=<your_proxy>(บน Unix หรือ Git Bash) แล้วลองติดตั้งใหม่

หากคุณกำลังใช้ Windows cmd set https_proxy=<your_proxy>นี้เปลี่ยนแปลงไป


1

ฉันทำสิ่งต่อไปนี้บน Windows 7 เพื่อแก้ปัญหานี้

c: \ Program Files \ Python36 \ Scripts> pip ติดตั้ง beautifulsoup4 --trusted-host *

ดูเหมือนว่า --trusted-host จะแก้ไขปัญหา SSL และ * หมายถึงทุกโฮสต์

แน่นอนว่าสิ่งนี้ใช้ไม่ได้เพราะคุณได้รับข้อผิดพลาดอื่น ๆ เนื่องจากไม่มีเวอร์ชันที่ตรงตามข้อกำหนด beautifulsoup4 แต่ฉันไม่คิดว่าปัญหานั้นเกี่ยวข้องกับคำถามทั่วไป


1

เพียงถอนการติดตั้งและติดตั้งแพ็คเกจ pip ใหม่มันจะออกกำลังกายสำหรับพวกคุณ

เวอร์ชันระบบปฏิบัติการ Mac: High Sierra 10.13.6

เวอร์ชันหลาม: 3.7.2

ดังนั้นฉันจึงถอนการติดตั้ง pip รุ่นเก่าและติดตั้งเวอร์ชันล่าสุด 10.0.0 โดยป้อนสิ่งนี้:

python3 -m pip uninstall pip setuptools

curl https://bootstrap.pypa.io/get-pip.py | python3

ตอนนี้ปัญหาของฉันได้รับการแก้ไขแล้ว หากคุณใช้ python2 คุณสามารถแทนที่ python3 ด้วย python ได้ ฉันหวังว่ามันจะเหมาะกับคุณ


1

ฉันพยายามบางส่วนของคำตอบที่ได้รับความนิยม แต่ก็ยังไม่สามารถติดตั้งห้องสมุดใด ๆ / pip installแพคเกจการใช้

ข้อผิดพลาดเฉพาะของฉันกำลัง'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chainใช้ Miniconda สำหรับ Windows (ตัวติดตั้ง Miniconda3-py37_4.8.3-Windows-x86.exe)

ในที่สุดก็ใช้งานได้เมื่อฉันทำสิ่งนี้: pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

โดยเฉพาะฉันเพิ่มสิ่งนี้เพื่อให้ใช้งานได้: --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org


0

ถ้าเป็นเรื่องเกี่ยวกับ nltk ฉันเคยประสบปัญหาที่คล้ายกัน ลองทำตามคำแนะนำสำหรับการติดตั้ง ติดตั้ง NLTK

หากคุณแน่ใจว่าใช้ไม่ได้กับโมดูลอื่นคุณอาจมีปัญหากับ Python เวอร์ชันต่างๆที่ติดตั้งไว้

หรือลองใช้ดูว่ามีการติดตั้ง pip แล้วหรือไม่:

sudo apt-get install python-pip python-dev build-essential 

และดูว่าใช้งานได้หรือไม่


0

ฉันแก้ไขปัญหานี้ด้วยขั้นตอนต่อไปนี้ (บน sles 11sp2)

zypper remove pip
easy_install pip=1.2.1
pip install --upgrade scons

นี่คือขั้นตอนเดียวกันในหุ่นเชิด (ซึ่งควรใช้ได้กับทุก distros)

  package { 'python-pip':
    ensure => absent,
  }
  exec { 'python-pip':
    command  => '/usr/bin/easy_install pip==1.2.1',
    require  => Package['python-pip'],
  }
  package { 'scons': 
    ensure   => latest,
    provider => pip,
    require  => Exec['python-pip'],
  }


0

ฉันมีสิ่งนี้กับ PyCharm และอัปเกรด pip เป็น 10.0.1 ทำให้ pip แตกโดยมีข้อผิดพลาด "'main' not found in module"

ฉันสามารถแก้ปัญหานี้ได้โดยติดตั้ง pip 9.0.3 ตามที่เห็นในเธรดอื่น นี่คือขั้นตอนที่ฉันทำ:

  1. ดาวน์โหลด pip เวอร์ชัน 9.0.3 จากhttps://pypi.org/simple/pip/ (เนื่องจากไม่สามารถใช้ pip เพื่อติดตั้งได้)
  2. ติดตั้ง pip 9.0.3 จาก tar.gz python -m pip install pip-9.0.3.tar.gz

ทุกอย่างเริ่มทำงานหลังจากนั้น



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