私はPythonが初めてなので、Windows 7で> pip install linkchecker
を試みます。
> pip install scrapy
もSSLエラーになります。python
とpip
は、3.4.1をインストールするまでコマンドラインから使用できませんでした。> pip search linkchecker
は動作します。おそらくそれは、pip検索でサイトのSSL証明書が検証されないためです。これはpip install linkchecker
を実行した後のmy pip.log の内容です。
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
信頼できるホストとして pypi.org
と files.pythonhosted.org
を設定すると、SSLエラーを無視できます。
$ pip install --trusted-Host pypi.org --trusted-Host files.pythonhosted.org <package_name>
注 :2018年4月中に、 Python Package Index がpypi.python.org
からpypi.org
に移行されました。これは、古いドメインを使った "trusted-Host"コマンドが機能しなくなったことを意味します。
Pip 10.0のリリース以降、pip
自体をアップグレードすることで恒久的にこれを修正できるはずです。
$ pip install --trusted-Host pypi.org --trusted-Host files.pythonhosted.org pip setuptools
または 再インストール を実行して最新バージョンを入手することもできます。
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
(…そして、関連するPythonインタプリタを使ってget-pip.py
を実行します)。
pip install <otherpackage>
はこの後でも動作するはずです。そうでない場合は、次に説明するように、それ以上のことをする必要があります。
あなたは 信頼できるホストとプロキシをあなたの設定ファイルに追加してください _にしたいかもしれません。
pip.ini
(Windows)またはpip.conf
(unix)
[global]
trusted-Host = pypi.python.org
pypi.org
files.pythonhosted.org
代替ソリューション(安全性が低い)
回答のほとんどはセキュリティ上の問題を引き起こす可能性があります。
Pythonパッケージの大部分を簡単にインストールするのに役立つ2つの回避策は以下のとおりです。
easy_install <package_name>
を使用してください。いくつかのパッケージが見つからないか、小さなエラーを出すことに注意してください。pip install wheel_package_name.whl
を使ってパッケージをインストールします。このパラメータで証明書を指定できます。
pip --cert /etc/ssl/certs/FOO_Root_CA.pem install linkchecker
ドキュメント»リファレンスガイド»pip を参照してください。
あなたの会社のルート証明書を指定してもうまくいかない場合は、おそらくcURLのものがうまくいくでしょう: http://curl.haxx.se/ca/cacert.pem
CRTファイルではなくPEMファイルを使用する必要があります。 CRTファイルがある場合は、 ファイルをPEMに変換を実行する必要があります。これはCRTファイルでも機能するという報告がありますが、確認していません。
SSL Cert Verification も確認してください。
kenorb's answer はとても便利です(そして素晴らしいです)。
彼の解決策の中で、おそらくこれが最も簡単な解決策でしょう:--trusted-Host
たとえば、この場合あなたはすることができます
pip install --trusted-Host pypi.python.org linkchecker
Pemファイル(またはその他のもの)は不要です。
答えは非常によく似ていて少し混乱します。私の場合、私の会社のネットワークの証明書が問題でした。私は使用して問題を回避することができました:
pip install --trusted-Host files.pythonhosted.org --trusted-Host pypi.org --trusted-Host pypi.python.org oauthlib -vvv
ここに見られるように 。詳細出力が不要な場合は、-vvv引数を省略できます。
私にとっては、pip.ini
in C:\Users\<username>\AppData\Roaming\
のファイルを含むフォルダーpip
を作成することで問題が修正されました。
C:\Users\<username>\AppData\Roaming\pip\pip.ini
その中に私は書いた:
[global]
trusted-Host = pypi.python.org
pypi.org
files.pythonhosted.org
私はpythonを再起動し、これらのサイトを永続的に信頼し、それらを使用してパッケージをダウンロードしました。
私が見つけた最も簡単な方法は、 https://www.digicert.com/digicert-root-certificates.htm#roots からDigiCertから「DigiCert高保証EVルートCA」をダウンロードして使用することです。
https://pypi.python.org/ にアクセスして、アドレスバーの鍵のアイコンをクリックして証明書の発行者を確認するか、opensslを使用してオタクのクレジットを増やすことができます。
$ openssl s_client -connect pypi.python.org:443
CONNECTED(00000003)
depth=1 /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/businessCategory=Private Organization/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/serialNumber=3359300/street=16 Allen Rd/postalCode=03894-4801/C=US/ST=NH/L=Wolfeboro,/O=Python Software Foundation/CN=www.python.org
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
証明書チェーンの最後のCN値はダウンロードする必要があるCAの名前です。
一回限りの努力のために、以下をしてください:
(最後の行はあなたがbashシェルを使っていると仮定しています)pipを実行する前に。
curl -sO http://cacerts.digicert.com/DigiCertHighAssuranceEVRootCA.crt
openssl x509 -inform DES -in DigiCertHighAssuranceEVRootCA.crt -out DigiCertHighAssuranceEVRootCA.pem -text
export PIP_CERT=`pwd`/DigiCertHighAssuranceEVRootCA.pem
これを再利用できるようにするには、DigiCertHighAssuranceEVRootCA.crtをどこか共通の場所に置き、それに応じてPIP_CERTを〜/ .bashrcにエクスポートします。
この問題を一度で解決するには、pip.conf
ファイルがあることを確認します。
ドキュメンテーション に従って、これはあなたのpip.conf
があるべき場所です。
Unixでは、デフォルトの設定ファイルは
$HOME/.config/pip/pip.conf
で、これはXDG_CONFIG_HOME環境変数を尊重します。MacOSでは、ディレクトリ
$HOME/Library/Application Support/pip/pip.conf
が存在すれば設定ファイルは$HOME/Library/Application Support/pip
で、そうでなければ$HOME/.config/pip/pip.conf
です。Windowsでは、設定ファイルは
%APPDATA%\pip\pip.ini
です。
virtualenvの中:
UnixおよびmacOSでは、ファイルは
$VIRTUAL_ENV/pip.conf
です。Windowsの場合、ファイルは
%VIRTUAL_ENV%\pip.ini
です。
あなたのpip.conf
は次のようになります。
[global]
trusted-Host = pypi.python.org
pip install linkchecker
ファイルを作成した後、pip.conf
が文句なしにlinkchecker
をインストールしました。
CERTIFICATE_VERIFY_FAILED
に関する問題を解決するには、以下の可能性があります。
代替のCAバンドルを指定するには、--cert <trusted.pem>
またはCA_BUNDLE
変数を使用します。
例えば。あなたはWebブラウザから失敗したURLに行き、あなたのシステムにルート証明書をインポートすることができます。
python -c "import ssl; print(ssl.get_default_verify_paths())"
を実行して現在のものを確認します(存在する場合は検証します)。
SSL_CERT_DIR
、SSL_CERT_FILE
)があります。PEP-476。--trusted-Host <hostname>
を使用します。verify=False
にrequests.get
を使用します( SSL Cert Verification を参照)。--proxy <proxy>
を使用してください。私は最近、SSLトラフィックをフィルタリングできるように独自の認証局を使用している私の会社のWebコンテンツフィルタが原因でこの問題に遭遇しました。私の場合、PIPはシステムのCA証明書を使用していないようで、言及したエラーが発生します。 PIPをバージョン1.2.1にダウングレードすると、後から独自の問題が発生したため、Python 3.4に付属していた元のバージョンに戻りました。
私の回避策は非常に簡単です:easy_install
を使用してください。 (古いPIPバージョンのように)証明書をチェックしないか、システム証明書を使うことを知っているかのどちらかです。それは私のために毎回動作します。
それでもうまくいかず、問題のないネットワークやコンピュータにアクセスできるのであれば、いつでも自分の個人用PyPIサーバーをセットアップすることができます。 ミラーを使わずに独自のpypiリポジトリインデックスを作成する方法?
最後の努力としてeasy_install
を使おうと試みるまで、私はほとんどそうしました。
Httpsの代わりにhttpを使用してSSLエラーを回避することができます。もちろんこれは セキュリティの観点からは最適ではありません ですが、急いでいる場合はトリックを実行する必要があります。
pip install --index-url=http://pypi.python.org/simple/ linkchecker
私はeasy_installでpip 1.2.1をインストールし、私の場合はパッケージをインストールすることができるpipの最新バージョン(一度に6.0.7)にアップグレードしました。
easy_install pip==1.2.1
pip install --upgrade pip
使用する答え
pip install --trusted-Host pypi.python.org <package>
作業。しかし、pip
がヒットしているリダイレクトやキャッシュがあるかどうかを確認する必要があります。 pip 9.0.1
が付いているWindows 7では、私は走らなければなりませんでした
pip install \
--trusted-Host pypi.python.org \
--trusted-Host pypi.org \
--trusted-Host files.pythonhosted.org \
<package>
冗長フラグでこれらを見つけることができます。
SSL検証の問題を解決するために、
これは私が試してみたものです。 ansibleをインストールしようとしたときにエラーが発生したため、パッケージ名にansibleを入れました。
これは、pipに、ダウンロード元のホストpypi.python.orgを信頼し、それをパッケージで信頼するように指示します。
pip install --trusted-Host pypi.python.org ansible
pip install --trusted-Host pypi.python.org --upgrade pip
メイビー私は少し答えるのが遅れている、
私にとっては、Raspberry Piの日付と時刻が誤って設定されていることがわかりました。その結果、 https://files.pythonhosted.org/ /サーバーを使用して、すべてのSSLおよびHTTPS接続が失敗しました。
このように更新してください。
Sudo date -s "Wed Aug 23 11:12:00 GMT+1 2018"
dpkg-reconfigure tzdata
4つの選択肢があります。
$ pip install --cert /path/to/mycertificate.crt linkchecker
pip.conf
で証明書を使用するこのファイルを作成してください。
$HOME/.pip/pip.conf (Linux)
%HOME%\pip\pip.ini (Windows)
そしてこれらの行を追加します。
[global]
cert = /path/to/mycertificate.crt
$ pip install --trusted-Host pypi.python.org linkchecker
このファイルを作成してください。
$HOME/.pip/pip.conf (Linux)
%HOME%\pip\pip.ini (Windows)
そしてこれらの行を追加します。
[global]
trusted-Host = pypi.python.org
まず第一に、
pip install --trusted-Host pypi.python.org <package name>
私のために働かなかった。 CERTIFICATE_VERIFY_FAILEDエラーが発生し続けました。しかし、私はエラーメッセージで彼らが 'pypi.org'サイトを参照していることに気づいた。そのため、pypi.python.orgではなく、これを信頼できるホスト名として使用しました。それはほとんど私にそこに着いた。ロードはまだCERTIFICATE_VERIFY_FAILEDで失敗していましたが、後の時点で。失敗していたウェブサイトへの参照を見つけて、それを信頼できるホストとして含めました。結局私のために働いたのは次のとおりです。
pip install --trusted-Host pypi.org --trusted-Host files.pythonhosted.org <package name>
64ビットWindows 7 Enterprise上でActivePython 2.7.8、ActivePython 3.4.1、および "stock" Python 3.4.2でpip install ftputil
を試しても同じ問題が発生しました。すべての試みはOPと同じエラーで失敗しました。
Python 3.4.2の問題を回避するには、pip 1.2.1:easy_install pip==1.2.1
にダウングレードしてください( https://stackoverflow.com/a/16370731/234235 を参照)。同じ修正がActivePython 2.7.8でも機能しました。
2013年3月に報告されたバグはまだ未解決です: https://github.com/pypa/pip/issues/829 。
このページでは、--verboseオプションを使用してpypi.python.orgではなくfiles.pythonhosted.orgにアクセスする必要があることを確認するまで、私には役に立ちませんでした。
pip install --trusted-Host files.pythonhosted.org <package_name>
そのため、--verboseオプションを使用して、実際に失敗しているURLを確認してください。
恒久的な修正
pip install --upgrade pip --trusted-Host pypi.org --trusted-Host files.pythonhosted.org
例えば:
pip install <package name> --trusted-Host pypi.org --trusted-Host files.pythonhosted.org
"https"を無視するためにこれを試すことができます:
pip install --index-url=http://pypi.python.org/simple/ --trusted-Host pypi.python.org [your package..]
私は自分のpipを削除してpipの古いバージョンをインストールすることでこの問題を解決しました: https://pypi.python.org/pypi/pip/1.2.1
Vaulstein 答えは私を助けた。
私のPCのどこにもpip.iniファイルが見つかりませんでした。次のようにしました。
または単にWindowsエクスプローラで%AppData%と入力してください。
そのappdataフォルダの中にpipというフォルダを作成します。
作成したそのpipフォルダーに、pip.iniという単純なテキストファイルを作成します。
選択した簡単なエディタを使用して、そのファイルに次の設定を貼り付けます。
pip.iniファイル:
[list]
format=columns
[global]
trusted-Host = pypi.python.org pypi.org
あなたは今行ってもいいはずです。
最近、私はビジュアルスタジオ2015でpython 3.6の同じ問題に直面しました。2日を過ごした後、私は解決策とそのうまくいった仕事を手に入れました。
Pipを使用して、またはビジュアルスタジオからnumpyをインストールしようとしているときにエラーが発生しました。URLを取得できませんでした https://pypi.python.org/simple/numpy/ :SSL証明書の確認中に問題が発生しました。 SSL:CERTIFICATE_VERIFY_FAILED]証明書の検証に失敗しました(_ssl.c:748) - スキップして要件numpyを満たすバージョンを見つけることができませんでした(バージョン:から)numpyに対する一致する配布が見つかりません
解決 :
Windows OSの場合
私にとっては、これは以前にプロキシを設定したり(コンソールを開いたり)、コンソールを再起動したり、再起動したりするスクリプトを実行していたためです。
1つの解決策(Windows用)は、pip.ini
フォルダー(存在しない場合はフォルダーを作成します) _に_ %AppData%\pip\
というファイルを作成し、以下の詳細を挿入することです。
[global]
cert = C:/certs/python_root.pem
proxy = http://my_user@my_company.com:my_password@proxy_ip:proxy_port
...そして、インストール手順を実行します。
pip3 install PyQt5
もう一つの選択肢は、プロキシと証明書の引数を使ってパッケージをインストールすることです...
$ pip3 install --proxy http://my_user@my_company.com:my_password@proxy_ip:proxy_port \
--cert C:/certs/python_root.pem PyQt5
証明書の*.cer
ファイルを必要な*.pem
形式に変換するには、次の手順を実行します。
$ openssl x509 -inform der -in python_root.cer -out python_root.pem
これが誰かに役立つことを願っています!
Opensuse install ca-certificates-mozillaでsystem.egに証明書がいくつか欠けていると、この問題が発生する可能性があります。
これが関連しているかどうかはわかりませんが、私はAnaconda3/Library/binからAnaconda3/DLLにこれらのファイルをコピーすることによって解決された同様の問題を抱えていました:
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
私の場合は、最小のAlpine dockerイメージでPythonを実行していました。ルートCA証明書がありませんでした。修正:
apk update && apk add ca-certificates
私の場合は、SSL証明書が私の会社の内部CAによって署名されているためです。 pip --cert
のような回避策を使用しても役に立ちませんでしたが、次のパッケージは役に立ちました。
pip install pip_system_certs
参照してください: https://pypi.org/project/pip-system-certs/
このパッケージは(バンドルされた証明書caではなく)デフォルトのシステムストアからの証明書を使用するように実行時にpipと要求にパッチを適用します。
これにより、pipはあなたのシステムインストールによって信頼されている証明書を持つサーバーへのtls/ssl接続を検証することができます。
私にとっては、推奨される方法はどれもうまくいきませんでした - cert、HTTP、trusted-Hostの使用。
私の場合、別のバージョンのパッケージへの切り替えはうまくいきました(この場合はpaho-mqtt 1.3.0ではなくpaho-mqtt 1.3.1)。
問題はそのパッケージのバージョンに固有のものであるように見えます。
make
を使用してPythonを手動でインストールした場合は、この回答に従う必要があります。 https://stackoverflow.com/a/42798679/6403406 それを機能させるために。
今のところ、pipが10にアップグレードされ、パスがpypi.python.orgからfiles.pythonhosted.orgに変更されました。コマンドをpipに更新してください--trusted-Host files.pythonhosted.org install python_package
私は同様の問題に直面しました。私のために働いた解決策1)python 2.7をアンインストール2)python27フォルダを削除3)最新のpythonを再インストール