【发布时间】:2018-02-11 02:01:22
【问题描述】:
几个小时以来,我一直在尝试解决对 pypi 的最新更改,但我找不到解决方法。我常用的运行 python setup.py register; python setup.py bdist_wheel sdist upload 的方法目前因 SSL 错误而失败:
(py27_test) [mpenning@mudslide ciscoconfparse]$ python setup.py register; python setup.py bdist_wheel sdist upload
...
Submitting /home/mpenning/ciscoconfparse/dist/ciscoconfparse-1.3.2-py2.py3-none-any.whl to https://upload.pypi.org/legacy/
error: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)>
FWIW twine 也会因 SSL 错误而失败。我尝试为 upload.pypi.org 下载 SSL PEM 证书,但不知何故 twine upload --cert ~/.certs/uploadpypiio.pem dist/* 也因 SSL 错误而失败:
(py27_test) [mpenning@mudslide ciscoconfparse]$ twine upload --cert ~/.certs/uploadpypiio.pem dist/*
Uploading distributions to https://upload.pypi.org/legacy/
Uploading ciscoconfparse-1.3.2-py2.py3-none-any.whl
SSLError: HTTPSConnectionPool(host='upload.pypi.org', port=443): Max retries exceeded with url: /legacy/ (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))
(py27_test) [mpenning@mudslide ciscoconfparse]$
我以前也遇到过这个问题,但是我可以通过手动将我的源发行版和轮子上传到 pypi.org 来解决这个问题;但是,即使该方法也失败了(它最近在 2018 年 1 月 29 日有效)。当我尝试手动上传包时,他们似乎已禁用它。
现在看来我完全无法解决这个问题。
问题
有什么方法可以手动将我错过的包上传到 pypi 吗?或者,如果我错过了一些麻绳魔法,我愿意听到它。我在虚拟环境中的 Debian 8.1 上运行 Python 2.7.9。
我有:
- pip 版本 9.0.1
- setuptools 版本 38.5.1
- twine 版本 1.9.1
【问题讨论】:
-
您是否尝试同步时间?通常时间问题是由时间错误或您的系统 openssl 太旧造成的。
-
也许您可以将
PIP_TRUSTED_HOST设置为upload.pypi.org。但它不能解决根本问题。我认为这可能是因为您的openssl。
标签: python linux ssl python-packaging