将包添加到 PyPi 时发生 SSL 错误

When adding package to PyPi SSL error occurs

我正在尝试向 PyPi 添加一个包,以便我可以使用 Pip 安装它。我正在尝试使用 twine upload dist/* 添加它。

这导致我收到多个 SSL 错误,例如 raise SSLError(e, request=request) requests.exceptions.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')])")))

我使用的是学校的笔记本电脑,我认为这是我的管理员所做的,但是我可以使用 pip3 install --trusted-host pypi.org --trusted-h\ost files.pythonhosted.org 通过 pip 安装东西。 我想知道是否有另一个可以将我的包添加到 pip?

这可能有很多原因,包括 twine 的过时版本,或者(更有可能)OpenSSL 的过时版本。此处列出了一些可能的解决方案:https://github.com/pypa/twine/issues/273

我猜你的学校有一些东西可以用他们自己的证书替换原始证书,你可以使用 --cert 并引用你学校证书的路径来绕过它,但我认为更简单的解决方法是将文件复制到非学校计算机并从那里上传。