vấn đề về pip khi cài đặt hầu hết mọi thư viện


101

Tôi gặp khó khăn khi sử dụng pip để cài đặt hầu hết mọi thứ. Tôi là người mới viết mã, vì vậy tôi nghĩ có lẽ đây là điều gì đó tôi đã làm sai và đã chọn không tham gia easy_install để hoàn thành hầu hết những gì tôi cần làm, điều này nói chung đã hoạt động. Tuy nhiên, bây giờ tôi đang cố tải xuống thư viện nltk và công việc vẫn chưa hoàn thành.

Tôi đã thử vào

sudo pip install nltk

nhưng nhận được phản hồi sau:

/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.

Bất kỳ suy nghĩ về vấn đề này? Tôi thực sự đánh giá cao một số phản hồi về cách tôi có thể làm cho pip hoạt động hoặc điều gì đó để giải quyết vấn đề trong thời gian chờ đợi.


2
Đối với mọi người, những người gặp phải lỗi này [SSL: TLSV1_ALERT_PROTOCOL_VERSION]cho tất cả các pip installs, đó là do các trang web Python.org không dùng TLS gần đây. Xem câu trả lời này
Anupam

Câu trả lời:


136

Tôi thấy nó đủ để chỉ định máy chủ pypi là đáng tin cậy. Thí dụ:

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

Điều này đã giải quyết được lỗi sau:

  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

Cập nhật tháng 4 năm 2018 : Đối với bất kỳ ai gặp phải lỗi TLSV1_ALERT_PROTOCOL_VERSION: lỗi này không liên quan gì đến vấn đề xác minh / máy chủ đáng tin cậy của OP hoặc câu trả lời này. Thay vì lỗi TLSV1 là do trình thông dịch của bạn không hỗ trợ TLS v1.2, bạn phải nâng cấp trình thông dịch của mình. Xem ví dụ: https://news.ycombinator.com/item?id=13539034 , http://pyfound.blogspot.ca/2017/01/time-to-upgrade-your-python-tls-v12.htmlhttps : //bugs.python.org/issue17128 .

Cập nhật tháng 2 năm 2019 : Đối với một số người, có thể đủ để nâng cấp pip. Nếu lỗi trên ngăn bạn thực hiện việc này, hãy sử dụng get-pip.py. Ví dụ: trên Linux,

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

Thêm chi tiết tại https://pip.pypa.io/en/stable/installing/ .


4
Điều này đã làm việc cho tôi, nhiều năm sau đó, trên một hệ thống cửa sổ
Allen Butler

23
Tôi vẫn gặp lỗi-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
Tôi đã cập nhật câu trả lời của mình để nói về TLSV1 vì đây là một vấn đề hoàn toàn riêng biệt.
Oliver

8
@peterpod xem câu trả lời này: stackoverflow.com/a/49769015/1526703
Anupam


40

Tôi đã sử dụng phiên bản pip 9.0.1và gặp sự cố tương tự, tất cả các câu trả lời ở trên không giải quyết được sự cố và tôi không thể cài đặt python / pip với brew vì các lý do khác.

Nâng cấp pip để 9.0.3giải quyết vấn đề. Và bởi vì tôi không thể nâng cấp pip bằng pip nên tôi đã tải xuống nguồn và cài đặt nó theo cách thủ công.

  1. Tải xuống phiên bản chính xác của pip từ - https://pypi.org/simple/pip/
  2. sudo python3 pip-9.0.3.tar.gz - Cài đặt pip

Hoặc bạn có thể cài đặt pip mới hơn với:

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

như đã đề cập trong nhận xét của tôi về câu trả lời của @ apatsekin, điều này xảy ra do TLS gần đây không được dùng cho pip. Xem câu trả lời này để biết chi tiết.
Anupam

Cảm ơn .. Có thể khẳng định như vậy cũng làm việc cho Python 2 (đang làm việc trên một cái gì đó di sản atm)
thảo quả

Nếu conda / anaconda là lý do tại sao bạn không thể sử dụng brew hoặc pip để cập nhật pip, thì bạn có thể sử dụng conda install pipđể cài đặt / nâng cấp pip mà bạn đang sử dụng với môi trường conda của mình. Bạn nên thực hiện việc này trong môi trường căn hộ gốc / cơ sở của mình, nếu bạn đã cài đặt căn hộ chung cư
hobs

1
Chỉ cần cài đặt pipcurl https://bootstrap.pypa.io/get-pip.py | python
Sumeet Gohil

32

Pypi đã loại bỏ hỗ trợ cho các phiên bản TLS nhỏ hơn 1.2

Bạn cần cài đặt lại Pip, làm

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

hoặc đối với Python toàn cầu:

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

Điều này đã giải quyết vấn đề trên phiên bản Mac OS Sierra 10.12.6. Cám ơn!
Zhenhua

Làm việc cho tôi trên High Sierra. Cảm ơn bạn.
gỉyshackleford

28

Tôi đã sử dụng phiên bản pip3 9.0.1và không thể cài đặt bất kỳ gói nào gần đây thông qua lệnh pip3 install.

Phiên bản hệ điều hành Mac: EI Captain 10.11.5.

phiên bản python: 3.5

Tôi đã thử lệnh:

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

Nó không hiệu quả với tôi.

Vì vậy, tôi đã gỡ cài đặt pip cũ hơn và cài đặt phiên bản mới nhất 10.0.0bằng cách nhập vào:

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

Bây giờ vấn đề của tôi đã được giải quyết. Nếu bạn đang sử dụng python2, bạn có thể thay thế python3 bằng python. Tôi hy vọng nó cũng làm việc cho bạn.

Nhân tiện, đối với một số tân binh như tôi, bạn phải nhập mã: sudo -i

để đạt được quyền root :) Chúc may mắn!


Echoing ở trên, định thử chỉ cài đặt lại python pip sạch nhưng điều này đã làm việc với tôi. Cảm ơn bạn!
MikeJannino

đừng bỏ qua "sudo -i"
Dung

27

Có thể bạn đang nhìn thấy lỗi này ; xem thêm tại đây .

Cách giải quyết đơn giản nhất là để hạ cấp pip một mà không sử dụng SSL: easy_install pip==1.2.1. Điều này làm bạn mất đi lợi ích bảo mật khi sử dụng SSL. Giải pháp thực sự là sử dụng bản phân phối Python được liên kết với thư viện SSL mới hơn.


1
Cảm ơn Dougal, nhưng pip 1.2.1 cũng không hoạt động. -Bạn có phiền cho tôi biết cách tôi có thể cập nhật bản phân phối python của mình lên thư viện ssl mới hơn không?
contentclown

thực ra, tôi vừa mới làm xong mọi việc. cảm ơn sự giúp đỡ của bạn, Dougal!
contentclown

7
@ user2348946 Bạn đã làm gì để điều này hữu ích cho mọi người trong tương lai?
Dougal

1
@DannyStaple Vâng, đó chính xác là những gì tôi đã đề xuất. Tất nhiên, sử dụng cài đặt Python không phải hệ thống không khó lắm; Cá nhân tôi sử dụng Anaconda , ứng dụng này rất tốt cho các ứng dụng số nhưng sẽ hoạt động cho mọi thứ.
Dougal

1
@ user13107 Có; như đã lưu ý trong các nhận xét về câu trả lời được chấp nhận, PyPI hiện yêu cầu TLS 1.2. Bạn sẽ cần cập nhật cài đặt Python của mình.
Dougal

18

Một nguyên nhân khác gây ra lỗi SSL có thể là thời gian hệ thống không tốt - chứng chỉ sẽ không xác thực nếu nó quá xa so với hiện tại.


Cảm ơn bạn!! Đó là giải pháp duy nhất phù hợp với tôi. Đồng hồ của máy chủ của tôi đã bị tắt.
Adam Spiers


6

Tôi đã giải quyết một vấn đề tương tự bằng cách thêm --trusted-host pypi.python.orgtùy chọn


6

Để cài đặt bất kỳ gói nào khác, tôi phải sử dụng phiên bản mới nhất của pip, vì 9.0.1SSL này có vấn đề. Để nâng cấp pip bằng chính pip, trước tiên tôi phải giải quyết vấn đề SSL này. Để thoát ra khỏi vòng lặp vô tận này, tôi thấy cách duy nhất này phù hợp với tôi.

  1. Tìm phiên bản mới nhất của pip trong trang này: https://pypi.org/simple/pip/
  2. Tải về .whl tệp của phiên bản mới nhất.
  3. Sử dụng pip để cài đặt pip mới nhất. (Sử dụng phiên bản mới nhất của riêng bạn tại đây)

sudo pip cài đặt pip-10.0.1-py2.py3-none-any.whl

Bây giờ pip là phiên bản mới nhất và có thể cài đặt bất kỳ thứ gì.


5

Giải pháp - Cài đặt bất kỳ gói nào bằng cách đánh dấu bên dưới máy chủ đáng tin cậy

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

Giải pháp tạm thời

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

Giải pháp vĩnh viễn - Cập nhật PIP của bạn (sự cố với phiên bản 9.0.1) lên mới nhất.

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. Không thể cài đặt bất kỳ thứ gì thông qua pip (python được cài đặt thông qua homebrew). Tất cả các câu trả lời trên không hoạt động.

Cuối cùng, nâng cấp từ python 3.5 lên 3.6 đã hoạt động.

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

sau đó làm theo bất kỳ đề xuất bổ sung nào bằng cách brew, tức là ghi đè liên kết tới python.


1
nếu bạn đang sử dụng Mac OS 10.12, vấn đề ban đầu của bạn có thể thực sự liên quan đến việc ngừng sử dụng TLS gần đây pip. Xem bài đăng này để biết chi tiết. pipđã ngừng hỗ trợ giao thức bảo mật cũ hơn trên 10.12 và các phiên bản cũ hơn.
Anupam

3

Tôi đã từng gặp vấn đề tương tự. Tôi vừa cập nhật python từ 2.7.0 lên 2.7.15 . Nó giải quyết vấn đề.

Bạn có thể tải về tại đây .


Tôi mới sửa lần thứ 10. Mặc dù hiểu rất rõ vấn đề trên OSX và biết lỗi là gì và ở đâu thì mỗi "giải pháp" lại khác nhau trong quá khứ. Lần này phiếu bầu sẽ chuyển sang cài đặt 2.7.15 trên OSX. Đơn giản và hiệu quả. Ngoài ra, có những ghi chú mà ông phát hành liên quan đến vấn đề SSL / OpenSSH. Chúc mừng và cảm ơn nhiều!
Marc

3

Như đã đăng ở trên bởi blackjar, những dòng dưới đây phù hợp với tôi

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

Bạn cần phải cung cấp cho cả ba --trusted-host options. Tôi đã thử chỉ với câu đầu tiên sau khi xem các câu trả lời nhưng nó không hiệu quả với tôi như vậy.


2

Bạn cũng có thể sử dụng conda để cài đặt các gói: Xem http://conda.pydata.org

conda install nltk

Cách tốt nhất để sử dụng conda là tải xuống Miniconda, nhưng bạn cũng có thể thử

pip install conda
conda init
conda install nltk

7
Công bằng mà nói, nếu pip installkhông hiệu quả, thì việc khuyên bạn nên cài đặt một trình quản lý gói khác thông qua pip là ... tốt, bạn biết đấy.
Dave Newton

Điều này thực sự đã làm việc cho tôi. Tôi đã cài đặt anaconda sau khi cài đặt python. Tôi không biết rằng anaconda có trình cài đặt riêng cho đến khi tôi đọc được điều này. Vì vậy, đây là câu trả lời phù hợp với tôi. Nhận xét của Travis đề cập đến vấn đề con gà / trứng vì anh ấy đã khuyến nghị cài đặt miniconda.
nếu NewQuestion bỏ phiếuCLOSE

2

Đối với tôi, pip mới nhất (1.5.6) hoạt động tốt với gói nltk không an toàn nếu bạn chỉ bảo nó không quá kén chọn về bảo mật:

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

Đây là một câu trả lời cũ. Bạn đang sử dụng phiên bản nào pip?
hobs

1
Tôi đoán là người cuối cùng. Tôi nghĩ rằng tôi đã giải quyết được vấn đề bằng cách gỡ bỏ cài đặt tất cả mọi thứ (Python 2.7, pip vv) và cài đặt lại tất cả mọi thứ hơn và hơn nữa
DaniPaniz

2

đã thử

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

và cuối cùng cũng giải quyết được, không hiểu tại sao miền pypi.python.org lại bị thay đổi.


1

Nếu bạn đang kết nối qua proxy, hãy thực thi export https_proxy=<your_proxy>(trên Unix hoặc Git Bash) và sau đó thử cài đặt lại.

Nếu bạn đang sử dụng cmd Windows, điều này sẽ thay đổi thành set https_proxy=<your_proxy>.


1

Tôi đã làm như sau trên Windows 7 để giải quyết vấn đề này.

c: \ Program Files \ Python36 \ Scripts> pip install beautifulsoup4 --trusted-host *

--Trusted-host dường như khắc phục được sự cố SSL và * có nghĩa là mọi máy chủ.

Tất nhiên điều này không hiệu quả vì bạn gặp các lỗi khác vì không có phiên bản nào đáp ứng yêu cầu beautifulsoup4, nhưng tôi không nghĩ vấn đề đó liên quan đến câu hỏi chung.


1

Chỉ cần gỡ cài đặt và cài đặt lại gói pip là nó sẽ hoạt động tốt cho các bạn.

Phiên bản hệ điều hành Mac: Sierra 10.13.6 cao

phiên bản python: 3.7

Vì vậy, tôi đã gỡ cài đặt pip cũ hơn và cài đặt phiên bản 10.0.0 mới nhất bằng cách nhập vào:

python3 -m pip uninstall pip setuptools

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

Bây giờ vấn đề của tôi đã được giải quyết. Nếu bạn đang sử dụng python2, bạn có thể thay thế python3 bằng python. Tôi hy vọng nó cũng làm việc cho bạn.


0

Nếu nó chỉ là về nltk, tôi đã từng đối mặt với vấn đề tương tự. Hãy thử hướng dẫn sau để cài đặt. Cài đặt NLTK

Nếu bạn chắc chắn rằng nó không hoạt động với bất kỳ mô-đun nào khác, bạn có thể gặp sự cố với các phiên bản Python khác nhau được cài đặt.

Hoặc Thử xem nó có nói rằng pip đã được cài đặt hay không.:

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

và xem nó có hoạt động không.


0

Tôi đã giải quyết vấn đề này bằng các bước sau (trên sles 11sp2)

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

Đây là các bước tương tự trong con rối (sẽ hoạt động trên tất cả các bản phân phối)

  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

Tôi đã gặp lỗi này với PyCharm và nâng cấp pip lên 10.0.1 đã bị hỏng pip với lỗi "'main' not found in module".

Tôi có thể giải quyết vấn đề này bằng cách cài đặt pip 9.0.3 như đã thấy trong một số luồng khác. Đây là những bước tôi đã làm:

  1. Đã tải xuống phiên bản 9.0.3 của pip từ https://pypi.org/simple/pip/ (vì không thể sử dụng pip để cài đặt nó).
  2. Cài đặt pip 9.0.3 từ tar.gz python -m pip cài đặt pip-9.0.3.tar.gz

Mọi thứ bắt đầu hoạt động sau đó.




0

Tôi đã thử một số câu trả lời phổ biến, nhưng vẫn không thể cài đặt bất kỳ thư viện / gói nào bằng cách sử dụng pip install.

Lỗi cụ thể của tôi là 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chainsử dụng Miniconda cho Windows (trình cài đặt Miniconda3-py37_4.8.3-Windows-x86.exe).

Cuối cùng nó hoạt động khi tôi làm điều này: pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

Cụ thể, tôi đã thêm điều này để làm cho nó hoạt động: --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.