【发布时间】:2022-06-24 19:09:50
【问题描述】:
我需要做一个真正自治的 PyPi 服务器。
我们的管理员建立了我们自己的 PyPi 服务器,托管在 Gitlab 上,我在那里上传了我需要的所有包。 一切正常,包从我的服务器下载,同时与 pypi.org 有连接。
命令:
pip install --index-url <my_gitlab_package_index> my_package
但是当我阻止与 pypi.org 的连接时,我收到了消息:
Could not fetch URL https://for_download:****@gitlab.local/local/api/v4/projects/.../packages/pypi/simple/my_package: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/my_package/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1091)'))) - skipping
请不要考虑证书问题,预防方式可能不同。 pip 根本不能连接到全局 pypi.org。
你有什么建议?
更新:带有-vv的日志:
日志变了,但结果是一样的。这是什么意思,关于“冗长”的东西?它尝试连接到 pypi.org。日志:
Looking in indexes: https://for_download:****@hmsevgit.hmse.local/api/v4/projects/advanced_algorithms%2fadvanced_verification/packages/pypi/simple
1 location(s) to search for versions of ditryjson:
...
https://for_download:****@hmsevgit.hmse.local/api/v4/projects/advanced_algorithms%2fadvanced_verification/packages/pypi/simple/ditryjson/
Getting page https://for_download:****@hmsevgit.hmse.local/api/v4/projects/advanced_algorithms%2fadvanced_verification/packages/pypi/simple/ditryjson/
Found credentials in url for hmsevgit.hmse.local
Starting new HTTPS connection (1): hmsevgit.hmse.local:443
https://hmsevgit.hmse.local:443 "GET /api/v4/projects/advanced_algorithms%2Fadvanced_verification/packages/pypi/simple/ditryjson/ HTTP/1.1" 302 81
Starting new HTTPS connection (1): pypi.org:443
【问题讨论】:
-
运行
pip和-vv,看看它会做什么! -
日志太长,无法在评论中粘贴,所以我更新了问题。
-
您的服务器返回一个指向 pypi.org 的 302。看起来服务器上缺少某些东西。
-
你完全正确。我将 api url 粘贴到浏览器并获得了重定向。谢谢。
-
第二次尝试 - 它在浏览器中显示了我的包裹。 pip 仍然被重定向。