masalah pip menginstal hampir semua perpustakaan

101

Saya mengalami kesulitan menggunakan pip untuk menginstal hampir semua hal. Saya baru mengenal pengkodean, jadi saya pikir mungkin ini adalah kesalahan yang telah saya lakukan dan telah memilih untuk keluar dari easy_install untuk menyelesaikan sebagian besar dari apa yang perlu saya selesaikan, yang umumnya berfungsi. Namun, sekarang saya mencoba mengunduh pustaka nltk, dan tidak ada yang menyelesaikan pekerjaan.

Saya mencoba masuk

sudo pip install nltk

tetapi mendapat tanggapan berikut:

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

Ada pendapat tentang masalah ini? Saya sangat menghargai beberapa umpan balik tentang bagaimana saya bisa membuat pip berfungsi atau sesuatu untuk mengatasi masalah sementara itu.

contentclown
sumber
2
Untuk orang-orang, yang mendapatkan kesalahan ini [SSL: TLSV1_ALERT_PROTOCOL_VERSION]untuk semua pip install, itu karena penghentian TLS baru-baru ini oleh situs Python.org. Lihat jawaban ini
Anupam

Jawaban:

136

Saya merasa cukup untuk menentukan host pypi sebagai tepercaya. Contoh:

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

Ini memecahkan kesalahan berikut:

  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

Pembaruan April 2018 : Kepada siapa pun yang mendapatkan kesalahan TLSV1_ALERT_PROTOCOL_VERSION: ini tidak ada hubungannya dengan masalah host tepercaya / verifikasi dari OP atau jawaban ini. Sebaliknya, kesalahan TLSV1 adalah karena penerjemah Anda tidak mendukung TLS v1.2, Anda harus meningkatkan penerjemah Anda. Lihat misalnya https://news.ycombinator.com/item?id=13539034 , http://pyfound.blogspot.ca/2017/01/time-to-upgrade-your-python-tls-v12.html dan https : //bugs.python.org/issue17128 .

Perbarui Feb 2019 : Untuk beberapa, mungkin cukup untuk meningkatkan pip. Jika kesalahan di atas menghalangi Anda melakukan ini, gunakan get-pip.py. Misalnya di Linux,

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

Detail selengkapnya di https://pip.pypa.io/en/stable/installing/ .

Oliver
sumber
4
Ini berhasil bagi saya, bertahun-tahun kemudian, pada sistem windows
Allen Butler
23
Saya masih mendapatkan kesalahan-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
Saya telah memperbarui jawaban saya untuk berbicara tentang TLSV1 karena ini adalah masalah yang sama sekali terpisah.
Oliver
8
@peterpod lihat jawaban ini: stackoverflow.com/a/49769015/1526703
Anupam
40

Saya menggunakan versi pip 9.0.1dan memiliki masalah yang sama, semua jawaban di atas tidak menyelesaikan masalah, dan saya tidak dapat menginstal python / pip dengan brew karena alasan lain.

Mengupgrade pip untuk 9.0.3menyelesaikan masalah. Dan karena saya tidak bisa mengupgrade pip dengan pip saya mendownload source dan menginstalnya secara manual.

  1. Unduh versi pip yang benar dari - https://pypi.org/simple/pip/
  2. sudo python3 pip-9.0.3.tar.gz - Pasang pip

Atau Anda dapat menginstal pip yang lebih baru dengan:

curl https://bootstrap.pypa.io/get-pip.py | python
ROM
sumber
seperti yang disebutkan dalam komentar saya di jawaban @ apatsekin, ini terjadi karena penghentian pip baru-baru ini TLS. Lihat jawaban ini untuk detailnya.
Anupam
Terima kasih .. Dapat mengkonfirmasi hal yang sama juga bekerja untuk Python 2 (sedang mengerjakan sesuatu yang lama atm)
kapulaga
Jika conda / anaconda adalah alasan mengapa Anda tidak dapat menggunakan brew atau pip untuk mengupdate pip, Anda dapat menggunakan conda install pipuntuk menginstal / mengupgrade pip yang Anda gunakan dengan lingkungan conda Anda. Anda harus melakukan ini di lingkungan root / base conda, jika Anda telah menginstal conda
hobs
1
Baru memasang pipcurl https://bootstrap.pypa.io/get-pip.py | python
Sumeet Gohil
32

Pypi menghapus dukungan untuk versi TLS kurang dari 1.2

Anda perlu menginstal ulang Pip, lakukan

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

atau untuk Python global:

curl https://bootstrap.pypa.io/get-pip.py | sudo python
Parth Choudhary
sumber
Ini memecahkan masalah pada Mac OS versi Sierra 10.12.6. Terima kasih!
Zhenhua
Bekerja untuk saya di High Sierra. Terima kasih.
rustyshackleford
28

Saya menggunakan versi pip3 9.0.1dan tidak dapat menginstal paket apa pun baru-baru ini melalui perintah pip3 install.

Versi Mac os: EI Captain 10.11.5.

versi python: 3.5

Saya mencoba perintah:

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

Itu tidak berhasil untuk saya.

Jadi saya menghapus instalasi pip lama dan menginstal versi terbaru 10.0.0dengan memasukkan ini:

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

Sekarang masalah saya terpecahkan. Jika Anda menggunakan python2, Anda dapat mengganti python3 dengan python. Saya harap ini juga berhasil untuk Anda.

Ngomong-ngomong, untuk beberapa pemula seperti saya, Anda harus memasukkan kode: sudo -i

untuk mendapatkan akar yang benar :) Selamat mencoba!

Aachen
sumber
Menggemakan hal di atas, hendak mencoba membersihkan instalasi ulang python dan pip tetapi ini berhasil untuk saya. Terima kasih!
MikeJannino
jangan abaikan "sudo -i"
Dung
27

Anda mungkin melihat bug ini ; lihat juga di sini .

Solusi termudah adalah dengan menurunkan pip ke salah satu yang tidak menggunakan SSL: easy_install pip==1.2.1. Anda akan kehilangan manfaat keamanan menggunakan SSL. Solusi sebenarnya adalah menggunakan distribusi Python yang ditautkan ke pustaka SSL yang lebih baru.

Dougal
sumber
1
Terima kasih Dougal, tetapi pip 1.2.1 juga tidak berhasil. -Apakah Anda keberatan memberi tahu saya bagaimana saya dapat memperbarui distribusi python saya ke perpustakaan ssl yang lebih baru?
contentclown
sebenarnya, saya baru saja membuat semuanya bekerja sekarang. terima kasih atas bantuan Anda, Dougal!
contentclown
7
@ user2348946 Apa yang Anda lakukan, sehingga berguna untuk orang lain di masa mendatang?
Dougal
1
@DannyStaple Ya, itulah yang saya sarankan. Tentu saja, menggunakan instalasi Python non-sistem tidaklah terlalu sulit; Saya pribadi menggunakan Anaconda , yang sangat bagus untuk aplikasi numerik tetapi bisa berfungsi untuk apa saja.
Dougal
1
@ user13107 Ya; seperti tercantum dalam komentar pada jawaban yang diterima, PyPI sekarang membutuhkan TLS 1.2. Anda harus memperbarui pemasangan Python Anda.
Dougal
18

Penyebab lain dari kesalahan SSL adalah waktu sistem yang buruk - sertifikat tidak akan divalidasi jika terlalu jauh dari saat ini.

pidge
sumber
Terima kasih!! Itulah satu-satunya solusi yang berhasil untuk saya. Jam server saya JAUH mati.
Adam Spiers
6

Saya memecahkan masalah serupa dengan menambahkan --trusted-host pypi.python.orgopsi

Ruben
sumber
6

Untuk menginstal paket lain, saya harus menggunakan pip versi terbaru, karena 9.0.1memiliki masalah SSL ini. Untuk mengupgrade pip demi pip itu sendiri, saya harus menyelesaikan masalah SSL ini terlebih dahulu. Untuk keluar dari lingkaran tak berujung ini, saya menemukan satu-satunya cara yang berhasil untuk saya.

  1. Temukan versi pip terbaru di halaman ini: https://pypi.org/simple/pip/
  2. Unduh .whlfile versi terbaru.
  3. Gunakan pip untuk menginstal pip terbaru. (Gunakan versi terbaru Anda sendiri di sini)

sudo pip install pip-10.0.1-py2.py3-none-any.whl

Sekarang pip adalah versi terbaru dan dapat menginstal apa saja.

Jianzhe Gu
sumber
5

Solusi - Instal paket apa pun dengan menandai host di bawah ini dipercaya

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

Solusi sementara

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

Solusi permanen - Perbarui PIP Anda (masalah dengan versi 9.0.1) ke yang terbaru.

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
RollerCosta
sumber
3

macOS Sierra 10.12.6. Tidak dapat menginstal apa pun melalui pip (python diinstal melalui homebrew). Semua jawaban di atas tidak berhasil.

Akhirnya, upgrade dari python 3.5 ke 3.6 berhasil.

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

kemudian ikuti saran tambahan apa pun dengan brew, yaitu menimpa tautan ke python.

apatsekin
sumber
1
jika Anda menggunakan Mac OS 10.12, masalah asli Anda mungkin sebenarnya terkait dengan penghentian TLS baru-baru ini pip. Lihat posting ini untuk detailnya. piptelah berhenti mendukung protokol keamanan yang lebih lama pada 10.12 dan versi yang lebih lama.
Anupam
3

Saya memiliki masalah yang sama. Saya baru saja memperbarui python dari 2.7.0 menjadi 2.7.15 . Ini memecahkan masalah.

Anda bisa download disini .

Günay Gültekin
sumber
Saya baru saja memperbaikinya untuk yang ke 10 kalinya. Meskipun memahami masalah di OSX dengan sangat baik dan mengetahui apa dan di mana kegagalan masing-masing "solusi" berbeda dari masa lalu. Kali ini pemungutan suara menuju ke 2.7.15 instalasi di OSX. Sederhana dan efektif. Juga, ada catatan yang dirilis tentang masalah SSL / OpenSSH. Salam dan terima kasih banyak!
Marc
3

Seperti yang diposting di atas oleh blackjar, baris di bawah ini berfungsi untuk saya

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

Anda harus memberikan ketiganya --trusted-host options. Saya mencoba hanya dengan yang pertama setelah melihat jawabannya tetapi tidak berhasil untuk saya seperti itu.

abhi
sumber
2

Anda juga dapat menggunakan conda untuk menginstal paket: Lihat http://conda.pydata.org

conda install nltk

Cara terbaik untuk menggunakan conda adalah mengunduh Miniconda, tetapi Anda juga dapat mencoba

pip install conda
conda init
conda install nltk
Travis Oliphant
sumber
7
Sejujurnya, jika pip installtidak berhasil, merekomendasikan menginstal manajer paket lain melalui pip adalah ... yah, Anda tahu.
Dave Newton
Ini benar-benar berhasil untuk saya. Saya menginstal anaconda setelah saya menginstal python. Saya tidak tahu bahwa anaconda memiliki penginstal sendiri sampai saya membaca ini. Jadi, inilah jawaban yang berhasil bagi saya. Komentar Travis membahas soal ayam / telur karena dia merekomendasikan untuk memasang miniconda.
jika NewQuestion memberikan suara TUTUP
2

Bagi saya, pip terbaru (1.5.6) berfungsi dengan baik dengan paket nltk yang tidak aman jika Anda mengatakannya agar tidak terlalu pilih-pilih tentang keamanan:

pip install --upgrade --force-reinstall --allow-all-external --allow-unverified ntlk nltk
kompor
sumber
Ini adalah jawaban lama. Anda menggunakan versi mana pip?
kompor
1
Saya kira yang terakhir. Saya pikir saya memecahkan masalah dengan menghapus semuanya (Python 2.7, pip dll.) Dan menginstal ulang semuanya berulang-ulang
DaniPaniz
2

mencoba

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

dan akhirnya berhasil, tidak begitu mengerti mengapa domain pypi.python.org diubah.

blackjar
sumber
1

Jika Anda terhubung melalui proxy, jalankan export https_proxy=<your_proxy>(di Unix atau Git Bash) lalu coba lagi penginstalan.

Jika Anda menggunakan Windows cmd, ini berubah menjadi set https_proxy=<your_proxy>.

kehilangan jiwa 29
sumber
1

Saya melakukan hal berikut di Windows 7 untuk mengatasi masalah ini.

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

--Trusted-host tampaknya memperbaiki masalah SSL dan * berarti setiap host.

Tentu saja ini tidak berfungsi karena Anda mendapatkan kesalahan lain karena tidak ada versi yang memenuhi persyaratan beautifulsoup4, tetapi saya rasa masalah itu tidak terkait dengan pertanyaan umum.

pengguna9175040
sumber
1

Cukup uninstall dan instal ulang paket pip itu akan berhasil untuk kalian.

Versi Mac os: Sierra tinggi 10.13.6

versi python: 3.7.0

Jadi saya mencopot pemasangan pip lama dan memasang versi terbaru10.0.0 dengan memasukkan ini:

python3 -m pip uninstall pip setuptools

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

Sekarang masalah saya terpecahkan. Jika Anda menggunakan python2, Anda dapat mengganti python3 dengan python. Saya harap ini juga berhasil untuk Anda.

Yash Patel
sumber
0

Kalau hanya soal nltk, saya pernah menghadapi masalah serupa. Coba panduan berikut untuk instalasi. Instal NLTK

Jika Anda yakin itu tidak berfungsi dengan modul lain, Anda mungkin mengalami masalah dengan versi berbeda dari Python yang diinstal.

Atau Cobalah untuk melihat apakah dikatakan pip sudah terpasang .:

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

dan lihat apakah itu berhasil.

akshayb
sumber
0

Saya memecahkan masalah ini dengan langkah-langkah berikut (di sles 11sp2)

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

Berikut adalah langkah-langkah yang sama dalam wayang (yang harus bekerja di semua distro)

  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'],
  }
spuder
sumber
0

Saya mengalami ini dengan PyCharm dan mengupgrade pip ke 10.0.1 merusak pip dengan kesalahan "'utama' tidak ditemukan dalam modul".

Saya bisa menyelesaikan masalah ini dengan menginstal pip 9.0.3 seperti yang terlihat di beberapa utas lainnya. Ini adalah langkah-langkah yang saya lakukan:

  1. Mengunduh versi 9.0.3 pip dari https://pypi.org/simple/pip/ (karena pip tidak dapat digunakan untuk menginstalnya).
  2. Instal pip 9.0.3 dari tar.gz python -m pip install pip-9.0.3.tar.gz

Semuanya mulai bekerja setelah itu.

Yuriy M
sumber
0

Saya mencoba beberapa jawaban populer, tetapi masih tidak dapat menginstal pustaka / paket apa pun yang menggunakan pip install.

Kesalahan khusus saya 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chainmenggunakan Miniconda untuk Windows (penginstal Miniconda3-py37_4.8.3-Windows-x86.exe).

Ini akhirnya berhasil ketika saya melakukan ini: pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

Secara khusus, saya menambahkan ini untuk membuatnya bekerja: --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

datchung
sumber