我试图通过PyPi将一个Python文件上传到twine upload <file>,但是我得到了一个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)其他使用SSL的Python脚本也有相同的问题,例如
python setup.py bdist_wheel upload <my_package>pip install <any_package>;但是在那里,我可以将--trusted-host pypi.python.org添加到任何pip install命令中,并且安装和下载依赖项将成功。这种情况发生在我的公司笔记本电脑上,不管是在家里还是在工作上,但在我的个人笔记本电脑上却没有发生。
为了解决这个问题,我基本上尝试了所以回答类似的问题 (即导出twine试图验证的证书--大概是pypi.python.org的证书--然后告诉twine使用它):
twine upload <my_package> --cert <path to CRT file>的形式运行了twine;这次是SSLError: [SSL] PEM lib (_ssl.c:2846)错误。然后,我尝试通过修补c:\Python35\lib\ssl.py来选择退出服务器证书验证,如选择退出中所描述的:我用_create_default_https_context = _create_unverified_context替换了行_create_default_https_context = create_default_context。重新运行twine命令时再次失败,出现原始CERTIFICATE_VERIFY_FAILED错误。
我对证书不太熟悉,所以我现在无所适从。
发布于 2017-09-11 11:41:07
您可以传递一个--cert标志来告诉twine要使用哪个证书。
twine upload dist\PyPubSub-4.0.0rc1-py3-none-any.whl --cert <path-to-.pem-file>若要将.cer隐藏到.pem文件,请执行以下操作。
openssl x509 -inform der -in certificate.cer -out certificate.pem对于使用自定义ssl证书的人来说,--cert标志是必不可少的。如果您使用的是企业网络,那么上面的解决方案应该可以解决您的问题。向管理员询问ssl证书:)
https://stackoverflow.com/questions/39970887
复制相似问题