Nexus OSS 不支持 Python 私有源,因其开源版缺失 PyPI 仓库类型,插件已停更且不兼容新版;推荐用 devpi 或 Artifactory CE 替代,二者原生支持 PyPI 协议与 pip 生态。

直接用 Nexus 搭建 Python 私有源是行不通的——Nexus OSS 版本(免费版)不支持 PyPI 仓库类型,只有 Nexus Pro(商业版)才内置 PyPI hosted/group/proxy 功能。想用 Nexus 管理 Python 包,必须绕过官方限制,靠第三方插件或换方案。
为什么 Nexus OSS 默认不支持 Python 包?
Nexus 3 的开源版本在设计时就排除了对 PyPI 协议的支持,其仓库类型列表里根本没有 PyPI 这一项。你新建仓库时能看到 maven2、npm、docker,但找不到 PyPI ——这不是配置问题,是功能缺失。
- 执行
curl -X GET "http://localhost:8081/service/rest/v1/repositories"查看可用仓库类型,返回中不含pypi - 尝试 POST 创建
pythons或pypi类型仓库会直接返回400 Bad Request和错误信息:Repository type 'pypi' is not supported - 社区曾有插件(如
nexus-pypi-plugin),但早已停止维护,且不兼容 Nexus 3.50+(当前主流版本)
替代方案:用 devpi 或 Artifactory 更现实
如果目标是私有 PyPI 服务,devpi 是最轻量、最贴近原生 pip 体验的选择;Artifactory 则是企业级全能选手(支持 PyPI、npm、maven 等多格式,且免费版已含 PyPI 支持)。
-
devpi启动快:docker run -p 3141:3141 devpi/devpi:latest,几分钟就能跑起一个支持上传/下载/索引的源 -
Artifactory CE(免费版)在 Web UI 中直接提供PyPI类型仓库选项,无需插件,pip 配置也和官方源一致:--index-url http://artifactory.example.com/artifactory/api/pypi/pypi-proxy/simple - 硬要用 Nexus?只能退回到 Nexus 2.x(已 EOL),它通过
PyPI插件勉强支持,但无安全更新、无 Docker 镜像、不兼容 Python 3.11+ 的包元数据
如果非要用 Nexus 3,只能当“文件托管”用
把 Nexus 当成静态文件服务器,手动上传 .whl 和 .tar.gz,再用 pip index 或自建简单 HTTP 索引页来模拟源——但这不是真正的 PyPI 兼容源,很多工具(如 pip-tools、poetry)会报错或跳过依赖解析。
立即学习“Python免费学习笔记(深入)”;
- 创建一个
raw类型仓库(如python-packages),上传文件路径必须严格匹配:package-name/version/package-name-version-py3-none-any.whl -
pip install --find-links http://nexus.example.com/repository/python-packages/ --no-deps package-name可临时安装,但无法解析依赖树 - 没有
simple/索引页,pip install默认行为失效;必须加--find-links和--trusted-host,CI 脚本易出错
真正要落地 Python 私有源,别卡在 Nexus 上试错。确认好团队是否需要完整 PyPI 协议支持(比如 pip install django 自动拉取依赖)、是否要集成 CI/CD 权限控制、是否已有 Artifactory 或 DevOps 工具链——这些比“用哪个 UI 好看”重要得多。


















