使用代理服务器时 twine 上传失败

twine upload fails when using a proxy server

当涉及代理服务器时,我无法使用 twine 上传到 pypi

这就是我到目前为止所尝试的:

python -m twine upload -u USER -p PASSWORD dist/*

当我在我们公司的代理服务器后面时 twine 只是挂起,没有错误消息。 设置 https_proxyhttp_proxy 环境变量也没有帮助。

我们公司的代理服务器有自己的 CA 证书(我有 .cer 文件)。

那么如何在代理服务器后面使用twine

使用 pip 我可以通过将以下 pip.ini 文件添加到 %Appdata%\pip 来做到这一点:

[global]
proxy = proxy.company.com:8080
cert = C:\CA_Proxy.cer

我已经能够通过设置 HTTPS_PROXY 环境变量解决 Windows 下的类似问题,而无需设置任何关于证书的内容。

cmd 提示下工作,运行

set HTTPS_PROXY=proxy.company.com:8080

在同一会话中 运行 执行您的 twine 命令之前。

也可以使用控制面板或按照https://superuser.com/q/79612/1148425

中的描述永久设置环境变量

在命令提示符前设置HTTPS_PROXYTWINE_CERT环境变量运行twine解决问题:

set HTTPS_PROXY=proxy.company.com:8080
set TWINE_CERT=C:\CA_Proxy.pem

python -m twine upload -u USER -p PASSWORD dist/*

注意:确保证书是 PEM(Base-64 编码的 X.509)格式。

TWINE_CERT 环境变量参见 twine 用户手册 https://twine.readthedocs.io/en/latest/.