我試圖通過twine upload <file>
上傳一個Python文件的PyPI但我得到的SSL錯誤:蟒蛇一些分佈SSL證書驗證失敗命令
C:\pypubsub>twine upload dist\PyPubSub-4.0.0rc1-py3-none-any.whl
Uploading distributions to https://upload.pypi.org/legacy/
Uploading PyPubSub-4.0.0rc1-py3-none-any.whl
SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)
其他Python腳本,例如
- 與
python setup.py bdist_wheel upload <my_package>
- 與
pip install <any_package>
;但我可以添加--trusted-host pypi.python.org
任何pip install
命令和相關的安裝和下載會成功
這發生在我的筆記本電腦的企業無論在家庭或工作,但它並不在我的個人筆記本電腦發生。
要解決這個問題,我基本上是試圖SO answer to similar problem(即導出證書麻線正試圖驗證 - 大概是pypi.python.org的 - 然後告訴麻線使用它):
-
從Chrome瀏覽器
- ,我去https://pypi.pythong.org,點擊URL旁邊的鎖,然後點擊Details,View Certificate,Details,Copy to File。這生成了一個.CER文件。
- 我用SSL Converter將.CER文件從DER格式轉換爲PEM格式。這創建了一個.CRT文件。
- 我跑線爲
twine upload <my_package> --cert <path to CRT file>
;這次SSL錯誤是SSLError: [SSL] PEM lib (_ssl.c:2846)
。
我然後試圖通過如Opting Out描述修補c:\Python35\lib\ssl.py
停用服務器證書驗證的:我通過_create_default_https_context = _create_unverified_context
取代線_create_default_https_context = create_default_context
。重新運行twine
命令再次失敗,原因是CERTIFICATE_VERIFY_FAILED錯誤。
我並不是那麼熟悉證書,所以我現在處於虧損狀態,還有什麼可以嘗試。
Thx @karanja for answer。但似乎這證實我的文章的步驟1到3應該工作,但也許我沒有正確地做第2步? – Schollii
@Schollii是否支持企業防火牆?如果是這樣,你有權訪問https SSL證書嗎? 您需要將'.cer'文件轉換爲'.pem'文件。 –
所以我需要從我們的IT獲得https SSL證書?所以這是一套ssl證書,不僅僅是那個我遇到麻煩的網站? – Schollii