【问题标题】:Package upload to pypi.org broken包上传到 pypi.org 损坏
【发布时间】: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


【解决方案1】:

通常是时间错误导致的 ssl 错误。所以在大多数情况下同步时间会解决它。

【讨论】:

    猜你喜欢
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 2020-01-09
    • 2016-04-14
    • 2021-03-15
    • 1970-01-01
    相关资源
    最近更新 更多