You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Nexus Repository OSS 3.7.1上传WHL包报404错误求助

解决Nexus OSS 3.7.1 PyPI分组仓库上传404错误的方法

我来帮你排查这个404问题,这在Nexus 3的PyPI仓库配置里是个常见误区,咱们一步步来解决:

核心问题:分组仓库不支持上传

首先要明确:Nexus 3中的分组(Group)仓库是只读的聚合视图,它的作用是把多个仓库(宿主、代理)的包聚合在一起供下载,但完全不接收上传请求。你遇到404的很大可能是把分组仓库地址当成了上传目标。

步骤1:确认仓库类型

登录Nexus管理面板,进入Repositories列表,查看你配置的pypi-masterType列:

  • 如果显示是Group:这就是问题根源,你需要创建一个宿主(Hosted)类型的PyPI仓库来接收上传
  • 如果显示是Hosted:继续往下排查

步骤2:修正仓库配置(如果是分组的情况)

  1. 在Nexus中创建新的Hosted PyPI仓库:
    • 点击Create repository,选择pypi (hosted)
    • 填写仓库名称(比如pypi-hosted),配置存储路径等,确保Deployment policy设置为Allow redeploy(如果需要覆盖旧包)
  2. 把这个新的Hosted仓库加入到你的分组仓库中(保持分组用于下载聚合)
  3. 修改你的*.pypirc配置,将nexus-master的地址指向这个Hosted仓库:
    [nexus-master]
    repository: http://nexus.domen.com:8081/repository/pypi-hosted/
    username:admin
    password:admin123
    

步骤3:检查账号权限

确保你使用的admin账号拥有对应Hosted仓库的Deploy权限

  • 进入Nexus的Security -> Roles,找到admin角色
  • 查看权限列表,确认包含nx-repository-view-pypi-*-deploy(或者针对你创建的Hosted仓库的具体Deploy权限)

步骤4:验证仓库地址有效性

直接在浏览器中访问Hosted仓库的地址(比如http://nexus.domen.com:8081/repository/pypi-hosted/):

  • 如果能正常显示Nexus的仓库页面,说明地址正确
  • 如果还是404,检查仓库名称是否拼写错误,或者仓库是否成功创建

步骤5:推荐使用Twine上传(更稳定)

旧的python setup.py upload方法已经被官方弃用,推荐使用twine工具,它的兼容性更好,错误信息更清晰:

  1. 安装twine:
    pip install twine
    
  2. 构建包:
    python setup.py bdist_wheel
    
  3. 上传包:
    twine upload -r nexus-master dist/*
    

内容的提问来源于stack exchange,提问作者Sergey Sergeevich

火山引擎 最新活动