从JFrog Artifactory安装已缓存的cryptography包时遇403禁止错误
解决JFrog Artifactory PyPI源安装cryptography包的403禁止错误
问题描述
我尝试用以下命令从JFrog Artifactory的PyPI源安装cryptography包:
pip install -i http://JFROG_URL/artifactory/api/pypi/all-pypi/simple --trusted-host JFROG_URL cryptography
但遇到了403禁止访问错误:
ERROR: HTTP error 403 while getting http://JFROG_URL/artifactory/api/pypi/all-pypi/packages/packages/25/1d/f86ce362aedc580c3f90c0d74fa097289e3af9ba52b8d5a37369c186b0f1/cryptography-41.0.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=e40211b4923ba5a6dc9769eab704bdb3fbb58d56c5b336d30996c24fcf12aadb (from http://JFROG_URL/artifactory/api/pypi/all-pypi/simple/cryptography/) (requires-python:>=3.7) ERROR: Could not install requirement cryptography from http://JFROG_URL/artifactory/api/pypi/all-pypi/packages/packages/25/1d/f86ce362aedc580c3f90c0d74fa097289e3af9ba52b8d5a37369c186b0f1/cryptography-41.0.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=e40211b4923ba5a6dc9769eab704bdb3fbb58d56c5b336d30996c24fcf12aadb because of error 403 Client Error: Forbidden for url: http://JFROG_URL/artifactory/api/pypi/all-pypi/packages/packages/25/1d/f86ce362aedc580c3f90c0d74fa097289e3af9ba52b8d5a37369c186b0f1/cryptography-41.0.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
该包已存在于远程缓存仓库中,我可以手动下载WHL文件安装,但希望通过JFrog直接完成安装,求解决方法。
解决方案
1. 修正URL路径问题
错误中的URL出现了重复的/packages/packages/路径,这大概率是路径解析异常导致的。可以尝试去掉索引URL末尾的/simple再试:
pip install -i http://JFROG_URL/artifactory/api/pypi/all-pypi --trusted-host JFROG_URL cryptography
2. 确认仓库权限
- 检查当前使用的账号对
all-pypi仓库是否有读取下载权限,包括缓存的包文件。 - 如果仓库需要认证,在pip命令中添加账号信息:
为了避免明文密码暴露,也可以把配置写入pip install -i http://你的用户名:密码@JFROG_URL/artifactory/api/pypi/all-pypi/simple --trusted-host JFROG_URL cryptographypip.conf(Linux/macOS)或pip.ini(Windows):[global] index-url = http://你的用户名:密码@JFROG_URL/artifactory/api/pypi/all-pypi/simple trusted-host = JFROG_URL
3. 清理pip本地缓存
本地缓存可能存储了错误的包路径,先清理再重新安装:
pip cache purge pip install -i http://JFROG_URL/artifactory/api/pypi/all-pypi/simple --trusted-host JFROG_URL cryptography
4. 检查反向代理/防火墙规则
如果Artifactory前端有反向代理(如Nginx)或防火墙,确认这些服务没有拦截/packages/路径的请求,也没有对重复路径做限制。
5. 重新同步仓库缓存
在Artifactory后台手动触发该包的重新同步,确保缓存的包路径、权限信息都是正确的。
内容的提问来源于stack exchange,提问作者Amirhossein Taheri
相关产品推荐
相关产品推荐

