Saya sangat baru di Python dan mencoba > pip install linkchecker
di Windows 7. Beberapa catatan:
- instalasi pip gagal terlepas dari paket. Misalnya,
> pip install scrapy
juga menghasilkan kesalahan SSL. - Instal vanilla dari Python 3.4.1 termasuk pip 1.5.6. Hal pertama yang saya coba lakukan adalah memasang linkchecker. Python 2.7 sudah diinstal, ia datang dengan ArcGIS.
python
danpip
tidak tersedia dari baris perintah sampai saya menginstal 3.4.1. > pip search linkchecker
bekerja. Mungkin itu karena pencarian pip tidak memverifikasi sertifikat SSL situs.- Saya berada di jaringan perusahaan tetapi kami tidak melalui proxy untuk mencapai Internet.
- Setiap komputer perusahaan (termasuk komputer saya) memiliki Otoritas Sertifikat Root Tepercaya yang digunakan karena berbagai alasan termasuk memungkinkan pemantauan lalu lintas TLS ke https://google.com . Tidak yakin apakah itu ada hubungannya dengan itu.
Berikut adalah isi dari pip.log saya setelah dijalankan pip install linkchecker
:
Downloading/unpacking linkchecker
Getting page https://pypi.python.org/simple/linkchecker/
Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
Getting page https://pypi.python.org/simple/
Could not fetch URL https://pypi.python.org/simple/: connection error: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/ (Caused by <class 'http.client.CannotSendRequest'>: Request-sent)
Will skip URL https://pypi.python.org/simple/ when looking for download links for linkchecker
Cannot fetch index base URL https://pypi.python.org/simple/
URLs to search for versions for linkchecker:
* https://pypi.python.org/simple/linkchecker/
Getting page https://pypi.python.org/simple/linkchecker/
Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
Could not find any downloads that satisfy the requirement linkchecker
Cleaning up...
Removing temporary dir C:\Users\jcook\AppData\Local\Temp\pip_build_jcook...
No distributions at all found for linkchecker
Exception information:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\pip\basecommand.py", line 122, in main
status = self.run(options, args)
File "C:\Python34\lib\site-packages\pip\commands\install.py", line 278, in run
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
File "C:\Python34\lib\site-packages\pip\req.py", line 1177, in prepare_files
url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
File "C:\Python34\lib\site-packages\pip\index.py", line 277, in find_requirement
raise DistributionNotFound('No distributions at all found for %s' % req)
pip.exceptions.DistributionNotFound: No distributions at all found for linkchecker
Jawaban:
-----> pip instal gensim config --global http.sslTerverifikasi salah
Cukup instal paket apa pun dengan pernyataan "config --global http.sslVerify false"
Anda dapat mengabaikan kesalahan SSL dengan menetapkan
pypi.org
danfiles.pythonhosted.org
sebagai host tepercaya.Catatan : Suatu saat selama April 2018, Indeks Paket Python dimigrasikan dari
pypi.python.org
kepypi.org
. Ini berarti perintah "tuan rumah tepercaya" menggunakan domain lama tidak lagi berfungsi.Perbaikan Permanen
Sejak rilis pip 10.0, Anda harus dapat memperbaikinya secara permanen hanya dengan memutakhirkan
pip
sendiri:Atau hanya dengan menginstal ulang untuk mendapatkan versi terbaru:
(... dan kemudian jalankan
get-pip.py
dengan interpreter Python yang relevan).pip install <otherpackage>
seharusnya hanya bekerja setelah ini. Jika tidak, maka Anda perlu melakukan lebih banyak, seperti yang dijelaskan di bawah ini.Anda mungkin ingin menambahkan host dan proxy tepercaya ke file konfigurasi Anda .
pip.ini
(Windows) ataupip.conf
(unix)Solusi Alternatif (Kurang aman)
Sebagian besar jawaban dapat menimbulkan masalah keamanan.
Dua dari solusi yang membantu dalam menginstal sebagian besar paket python dengan mudah adalah:
easy_install <package_name>
. Perhatikan bahwa beberapa paket tidak akan ditemukan atau akan memberikan kesalahan kecil.pip install wheel_package_name.whl
untuk menginstal paket.sumber
pip install --trusted-host pypi.python.org pypi_package
. Menggunakan--verbose
menunjukkan bahwa tanpa--trusted-host
, koneksi HTTPS gagal, sedangkan koneksi HTTPS yang sama dicoba (bukan HTTP) dengan--trusted-host
tetapi berhasil.pip install --trusted-host pypi.python.org pythonPackage
Anda dapat menentukan sertifikat dengan param ini:
Lihat: Dokumen »Panduan Referensi» pip
Jika menentukan sertifikat root perusahaan Anda tidak berfungsi, mungkin yang CURL akan berfungsi: http://curl.haxx.se/ca/cacert.pem
Anda harus menggunakan file PEM dan bukan file CRT. Jika Anda memiliki file CRT, Anda harus mengonversi file ke PEM. Ada laporan di komentar bahwa ini sekarang berfungsi dengan file CRT tetapi saya belum memverifikasi.
Juga periksa: Verifikasi Sertifikat SSL .
sumber
pip.conf
file untuk direferensikan secara permanen tanpa menentukan perintahJawaban kenorb sangat berguna (dan hebat!).
Di antara solusinya, mungkin ini yang paling sederhana:
--trusted-host
Misalnya, dalam hal ini yang bisa Anda lakukan
File pem (atau apa pun) tidak perlu.
sumber
pip list --trusted-host pypi.python.org --outdated
Bagi saya masalahnya sudah diperbaiki dengan membuat folder
pip
, dengan file:pip.ini
diC:\Users\<username>\AppData\Roaming\
misalnya:Di dalamnya saya menulis:
Saya memulai kembali python, dan kemudian memip secara permanen mempercayai situs-situs ini, dan menggunakannya untuk mengunduh paket dari.
Jika Anda tidak dapat menemukan Map AppData di windows, tulis
%appdata%
di file explorer dan itu akan muncul.sumber
Jawabannya sangat mirip dan agak membingungkan. Dalam kasus saya, sertifikat di jaringan perusahaan saya adalah masalahnya. Saya dapat mengatasi masalah menggunakan:
Seperti yang terlihat di sini . Argumen -vvv dapat dihilangkan jika output verbose tidak diperlukan
sumber
Perbaikan Permanen
Untuk misalnya:
sumber
Untuk mengatasi masalah ini sekali dan untuk semua, Anda dapat memverifikasi bahwa Anda memiliki
pip.conf
file.Di sinilah
pip.conf
seharusnya Anda berada, sesuai dengan dokumentasi :Di dalam virtualenv:
Anda
pip.conf
akan terlihat seperti:pip install linkchecker
diinstallinkchecker
tanpa mengeluh setelah saya membuatpip.conf
file.sumber
pip
panduan pengguna telah diperbarui sejak ketika saya memposting jawaban ini. Saya memperbarui jawaban saya untuk macOS. Apakah ini membantu?brew
maka pastikan Anda menggunakanpip3
dan membuatpip.conf
as$HOME/.config/pip/pip.conf
. Saya bekerja untuk saya.Cara paling mudah yang saya temukan, adalah mengunduh dan menggunakan "DigiCert High Assurance EV Root CA" dari DigiCert di https://www.digicert.com/digicert-root-certificates.htm#roots
Anda dapat mengunjungi https://pypi.python.org/ untuk memverifikasi penerbit sertifikat dengan mengklik ikon kunci di bilah alamat, atau menambah kredibilitas geek Anda dengan menggunakan openssl:
Nilai CN terakhir dalam rantai sertifikat adalah nama CA yang perlu Anda unduh.
Untuk upaya satu kali, lakukan hal berikut:
(baris terakhir mengasumsikan Anda menggunakan bash shell) sebelum menjalankan pip.
Untuk membuat ini dapat digunakan kembali, letakkan DigiCertHighAssuranceEVRootCA.crt di tempat yang umum dan ekspor PIP_CERT yang sesuai di ~ / .bashrc Anda.
sumber
Anda memiliki kemungkinan berikut untuk menyelesaikan masalah dengan
CERTIFICATE_VERIFY_FAILED
:--index-url=http://pypi.python.org/simple/
.).Gunakan
--cert <trusted.pem>
atauCA_BUNDLE
variabel untuk menentukan bundel CA alternatif.Misalnya Anda dapat membuka URL yang gagal dari browser web dan mengimpor sertifikat root ke sistem Anda.
Jalankan
python -c "import ssl; print(ssl.get_default_verify_paths())"
untuk memeriksa yang sekarang (validasi jika ada).SSL_CERT_DIR
,SSL_CERT_FILE
) yang dapat digunakan untuk menentukan basis data sertifikat PEP-476 yang berbeda .--trusted-host <hostname>
untuk menandai host sebagai tepercaya.verify=False
untukrequests.get
(lihat: Verifikasi Sertifikat SSL ).--proxy <proxy>
untuk menghindari cek sertifikat.Baca lebih lanjut di: TLS / SSL wrapper untuk objek soket - Memverifikasi sertifikat .
sumber
Atur Waktu dan Tanggal dengan benar!
Bagi saya, ternyata tanggal dan waktu saya salah dikonfigurasi pada Raspberry Pi. Hasilnya adalah semua koneksi SSL dan HTTPS gagal, menggunakan server https://files.pythonhosted.org/ .
Perbarui seperti ini:
Atau langsung dengan misalnya waktu Google:
Ref .: https://superuser.com/a/635024/935136
sumber
Saya baru-baru ini mengalami masalah ini karena filter konten web perusahaan saya yang menggunakan Otoritas Sertifikat sendiri sehingga dapat menyaring lalu lintas SSL. PIP tampaknya tidak menggunakan sertifikat CA sistem dalam kasus saya, menghasilkan kesalahan yang Anda sebutkan. Menurunkan versi PIP ke versi 1.2.1 menyajikan masalah sendiri di kemudian hari, jadi saya kembali ke versi asli yang menyertai Python 3.4.
Solusi saya cukup sederhana: gunakan
easy_install
. Entah itu tidak memeriksa sertifikat (seperti versi PIP lama), atau ia tahu untuk menggunakan sertifikat sistem karena berfungsi setiap saat untuk saya dan saya masih dapat menggunakan PIP untuk menghapus paket yang diinstal dengan easy_install.Jika itu tidak berhasil dan Anda bisa mendapatkan akses ke jaringan atau komputer yang tidak memiliki masalah, Anda selalu dapat mengatur server PyPI pribadi Anda: bagaimana cara membuat indeks repositori pypi sendiri tanpa mirror?
Saya hampir melakukannya sampai saya mencoba menggunakan
easy_install
sebagai upaya terakhir.sumber
pip
untuk menggunakannya--cert MyCompanyRootCA.crt
.Anda dapat mencoba mem-bypass kesalahan SSL dengan menggunakan http, bukan https. Tentu saja ini tidak optimal dalam hal keamanan , tetapi jika Anda terburu-buru harus melakukan trik:
sumber
Could not fetch URL http://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
Jawaban untuk digunakan
kerja. Tetapi Anda harus memeriksa apakah ada arahan ulang atau cache
pip
yang menabrak. Pada Windows 7 denganpip 9.0.1
, saya harus menjalankanAnda dapat menemukan ini dengan bendera verbose.
sumber
Saya menginstal pip 1.2.1 dengan easy_install dan ditingkatkan ke versi terbaru pip (6.0.7 pada saat itu) yang dapat menginstal paket dalam kasus saya.
sumber
Anda memiliki 4 opsi:
Menggunakan sertifikat sebagai parameter
Menggunakan sertifikat dalam a
pip.conf
Buat file ini:
dan tambahkan baris ini:
Mengabaikan sertifikat dan menggunakan HTTP
Mengabaikan sertifikat dan menggunakan HTTP di pip.conf
Buat file ini:
dan tambahkan baris ini:
Sumber
sumber
Pertama-tama,
tidak bekerja untuk saya. Saya terus mendapatkan kesalahan CERTIFICATE_VERIFY_FAILED. Namun, saya perhatikan dalam pesan kesalahan bahwa mereka mereferensikan situs 'pypi.org'. Jadi, saya menggunakan ini sebagai nama host tepercaya alih-alih pypi.python.org. Itu hampir membuat saya di sana; beban masih gagal dengan CERTIFICATE_VERIFY_FAILED, tetapi pada titik berikutnya. Mencari referensi ke situs web yang gagal, saya memasukkannya sebagai tuan rumah tepercaya. Apa yang akhirnya berhasil bagi saya adalah:
sumber
Saya tidak yakin apakah ini terkait, tetapi saya memiliki masalah serupa yang diperbaiki dengan menyalin file-file ini dari Anaconda3 / Library / bin ke Anaconda3 / DLLs:
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
sumber
Punya masalah yang sama mencoba
pip install ftputil
dengan ActivePython 2.7.8, ActivePython 3.4.1, dan "stock" Python 3.4.2 pada 64-bit Windows 7 Enterprise. Semua upaya gagal dengan kesalahan yang sama seperti OP.Mengatasi masalah Python 3.4.2 dengan menurunkan versi ke pip 1.2.1:
easy_install pip==1.2.1
(lihat https://stackoverflow.com/a/16370731/234235 ). Perbaikan yang sama juga bekerja untuk ActivePython 2.7.8.Bug yang dilaporkan pada Maret 2013 masih terbuka: https://github.com/pypa/pip/issues/829 .
sumber
Tidak ada di halaman ini yang berfungsi untuk saya sampai saya menggunakan opsi --verbose untuk melihat bahwa ia ingin membuka files.pythonhosted.org daripada pypi.python.org:
Jadi, periksa URL yang sebenarnya gagal melalui opsi --verbose.
sumber
Saya memecahkan masalah ini dengan menghapus pip saya dan menginstal versi pip yang lebih lama: https://pypi.python.org/pypi/pip/1.2.1
sumber
include the essential parts of the answer here
karena ini adalah tautan ke file biner ...?Anda dapat mencoba ini untuk mengabaikan "https":
sumber
pip install --trusted-host pypi.python.org --upgrade pip –
Salah satu solusi ( untuk Windows ) adalah membuat file yang dipanggil
pip.ini
pada%AppData%\pip\
folder (buat folder jika tidak ada) dan masukkan detail berikut:... dan kemudian kita dapat menjalankan instruksi instalasi:
Pilihan lain adalah menginstal paket menggunakan argumen untuk proksi dan sertifikat ...
Untuk mengonversi
*.cer
file sertifikat ke*.pem
format yang diperlukan, jalankan instruksi berikut:Semoga ini bisa membantu seseorang!
sumber
pip3.6 config set global.cert '/<path>/server.crt'
Dalam kasus saya, itu karena sertifikat SSL ditandatangani oleh CA internal perusahaan saya. Menggunakan solusi seperti
pip --cert
tidak membantu, tetapi paket berikut tidak:Lihat: https://pypi.org/project/pip-system-certs/
sumber
pip_system_certs
benar-benar merusak lingkungan Python saya, dan untuk alasan ini ini bukan jawaban yang baik. Jangan pasang pip_system_certs. Lihat stackoverflow.com/questions/27835619/… untuk informasi lebih lanjut.bagi saya ini karena sebelumnya saya sedang menjalankan skrip yang mengatur proxy (ke fiddler), membuka kembali konsol atau reboot memperbaiki masalah.
sumber
Baru-baru ini saya menghadapi masalah yang sama dalam python 3.6 dengan visual studio 2015. Setelah menghabiskan 2 hari, saya mendapatkan solusi dan itu berfungsi dengan baik untuk saya.
Saya mendapatkan kesalahan di bawah ketika mencoba menginstal numpy menggunakan pip atau dari studio visual Mengumpulkan numpy Tidak dapat mengambil URL https://pypi.python.org/simple/numpy/ : Ada masalah saat mengonfirmasi sertifikat ssl: [SSL: CERTIFICATE_VERIFY_FAILED] verifikasi sertifikat gagal (_ssl.c: 748) - melompati Tidak dapat menemukan versi yang memenuhi persyaratan numpy (dari versi:) Tidak ditemukan distribusi yang cocok untuk numpy
Resolusi:
Untuk OS Windows
[global]
dipercaya-host = pypi.python.org Simpan dan Tutup file tersebut. Sekarang instal menggunakan pip / visual studio berfungsi dengan baik.
sumber
Dalam kasus saya, saya menjalankan Python dalam gambar docker alpine minimal. Itu tidak memiliki sertifikat CA root. Memperbaiki:
apk update && apk add ca-certificates
sumber
Jawaban Vaulstein membantu saya.
Saya tidak menemukan file pip.ini di mana pun di pc saya. Begitu juga yang berikut.
Atau cukup ketik% AppData% di windows explorer.
Buat folder bernama pip di dalam folder appdata itu.
Di folder pip yang baru saja Anda buat, buat file teks sederhana bernama pip.ini
Lewati pengaturan konfigurasi berikut dalam file itu menggunakan editor sederhana pilihan Anda.
file pip.ini:
Anda sekarang harus baik untuk pergi.
sumber
Saya menghadapi masalah serupa. Solusi yang bekerja untuk saya 1) uninstall python 2.7 2) hapus folder python27 3) instal ulang python terbaru
sumber
Bagi saya tidak ada metode yang disarankan bekerja - menggunakan cert, HTTP, host-terpercaya.
Dalam kasus saya, beralih ke versi berbeda dari paket bekerja (paho-mqtt 1.3.1 bukannya paho-mqtt 1.3.0 dalam contoh ini).
Sepertinya masalah khusus untuk versi paket itu.
sumber
Anda mungkin memiliki masalah ini jika beberapa sertifikat hilang di sistem Anda
sumber