私はPythonの初心者で、Windows 7に > pip install linkchecker
をインストールしようとしています。いくつかのメモ:
> pip install scrapy
もSSLエラーになります。python
とpip
はコマンドラインから利用できなかった。以下は、pip install linkchecker
を実行した後の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パッケージインデックスが 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>
はこの後に動作するはずです。 そうでない場合は、以下で説明するように、さらに多くのことを行う必要があります。
---。
[信頼できるホストとプロキシを構成ファイルに追加][3]を使用できます。
pip.ini
(Windows)または pip.conf
(unix)。
[global]
trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org
----------。
代替ソリューション(安全性が低い)。
回答のほとんどはセキュリティの問題を引き起こす可能性があります。
ほとんどのpythonパッケージを簡単にインストールするのに役立つ2つの回避策は次のとおりです。
- easy_installの使用:本当に怠惰で時間を無駄にしたくない場合は、 easy_install< package_name>
を使用します。 一部のパッケージが見つからないか、小さなエラーが発生することに注意してください。
- Wheelの使用:Pythonパッケージのホイールをダウンロードし、pipコマンド pip install wheel_package_name.whl
を使用してパッケージをインストールします。
[3]:https://pip.pypa.io/en/stable/user_guide/?highlight = appdata#config-file。
このパラメータで証明書を指定できる:
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証明書の検証も確認してください。
私にとっての問題は、フォルダを作成することで修正されました。
pip
、ファイル付き: pip.ini
。
に。
C:\ Users \< username> \ AppData \ Roaming \
。
例えば:
C:\Users\<username>\AppData\Roaming\pip\pip.ini
その中に私は書いた:
[global]
trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org
Pythonを再起動し、pipがこれらのサイトを永続的に信頼し、それらを使用してパッケージをダウンロードしました。
WindowsでAppDataフォルダが見つからない場合は、ファイルエクスプローラに「%appdata%」と書き込むと、表示されるはずです。
答えは非常に似ており、少し混乱しています。 私の場合、私の会社のネットワークの証明書が問題でした。 私は以下を使用して問題を回避することができました。
pip install --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org oauthlib -vvv
ここに見られるように。 冗長出力が不要な場合は、-vvv引数を省略できます。
私が見つけた最も簡単な方法は、DigiCertのhttps://www.digicert.com/digicert-root-certificates.htm#rootsから「DigiCert High Assurance EV Root 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の名前です。
1回限りの作業については、次の操作を行います。
1。 DigiCertからCRTをダウンロードします。 2。 CRTをPEM形式に変換します。 3。 PIP_CERT環境変数をPEMファイルのパスにエクスポートします。
(最後の行は、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を共通の場所に置き、それに応じて〜/ .bashrcにPIP_CERTをエクスポートします。
この問題を一度に解決するには、「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.conf
ファイルを作成した後、 pip install linkchecker
が文句なしにインストールされました。
CERTIFICATE_VERIFY_FAILED
の問題を解決するには、次の可能性があります。
-HTTPSの代わりにHTTPを使用します。
---cert< trusted.pem>
または CA_BUNDLE
変数を使用して、代替CAバンドルを指定します。
例えば。 Webブラウザーから失敗したURLに移動し、ルート証明書をシステムにインポートできます。
-python -c "import ssl; print(ssl.get_default_verify_paths())"
を実行して、現在のものを確認します(存在する場合は検証します)。
-OpenSSLには、さまざまな証明書データベースを指定するために使用できる環境のペア( SSL_CERT_DIR
、SSL_CERT_FILE
)があります PEP-476< / sup>。
---trusted-host< hostname>
を使用して、ホストを信頼済みとしてマークします。
-Pythonでは、「requests.get」に「verify = False」を使用します(SSL Cert Verificationを参照)。
-証明書チェックを避けるために、 --proxy< proxy>
を使用します。
私にとって、私の日付と時刻がRaspberry Piで誤って構成されていることがわかりました。 その結果、https://files.pythonhosted.org/サーバーを使用して、すべてのSSLおよびHTTPS接続が失敗しました。
sudo date -s "Wed Thu 23 11:12:00 GMT + 1 2018"。
sudo dpkg-reconfigure tzdata。
``。
###または直接、例えば. Googleの時間:
参照.:https://superuser.com/a/635024/935136。
```バッシュ。
sudo date -s "$(curl -s --head http://google.com| grep ^ Date:| sed 's / Date:// g')"。
sudo dpkg-reconfigure tzdata。
``。
最近、SSLトラフィックをフィルタリングできるように独自の認証局を使用する会社のWebコンテンツフィルターが原因で、この問題に遭遇しました。 私の場合、PIPはシステムのCA証明書を使用していないようで、あなたが言及したエラーを生成します。 PIPをバージョン1.2.1にダウングレードすると、独自の一連の問題が後で発生するため、Python 3.4に付属の元のバージョンに戻りました。
私の回避策は非常に簡単です。 easy_install< / code>を使用します。 (古いPIPバージョンのような)証明書をチェックしないか、システム証明書を使用することがわかっています。これは、毎回機能し、PIPを使用してeasy_installでインストールされたパッケージをアンインストールできるためです。
それが機能せず、問題のないネットワークまたはコンピューターにアクセスできる場合は、いつでも独自のPyPIサーバーをセットアップできます。https://stackoverflow.com/questions/18052217/how-to -create-local-own-pypi-repository-index-without-mirror。
easy_install< / code>を使用しようとするまで、ほとんどそれを行いました。最後の溝の努力として。
使用する答え。
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>
これらは、冗長フラグで見つけることができます。
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>
ActivePython 2.7.8、ActivePython 3.4.1、および64ビットWindows 7 Enterpriseの「ストック」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。
pipを削除し、古いバージョンのpipをインストールすることでこの問題を解決しました: https://pypi.python.org/pypi/pip/1.2.1