python setuptools 将轮子上传到自定义 devpi 服务器:404 未找到

python setuptools upload wheel to custom devpi server: 404 Not found

作为持续集成管道的一部分,我正在尝试从存储库构建一个 Python wheel 文件,将其上传到自定义 devpi 服务器,然后从那里对 wheel 文件运行测试。

我尝试过的一种方法是使用 setuptools 在一行中构建和上传 wheel 文件,但是 returns 出现 404 Not Found 消息。

在 Windows 上工作,我的 .pypirc 在 C:\Users\buildbot\.pypirc

[distutils]
index-servers =
    staging

[staging]
repository: http://pypi/root/staging
username: buildbot
password: 12345678

从我的项目回购的根目录,我尝试构建和上传:

python.exe .\setup.py bdist_wheel upload --repository http://pypi/root/staging

但是,虽然轮子放在 dist\proj-20141216.2.dev0-py2-none-any.whl 中很好,但上传步骤的结果是:

running upload Submitting C:\var\buildminion\build_proj-dev\build\dist\proj-20141216.2.dev0-py2-none-any.whl to http://pypi/root/staging

Upload failed (404): Not Found

运行 setuptools register 结果类似:

Registering snail to http://pypi/root/staging

Server response (404): Not Found

我知道 devpi 服务器运行正常,因为我可以使用

手动上传文件
devpi use http://pypi/root/staging
devpi login buildbot --password 12345678
devpi upload dist\proj-20141216.2.dev0-py2-none-any.whl

知道为什么设置工具 upload 不起作用吗?

此外,是否可以在没有 .pypirc 的情况下使用此上传功能(或自动填充该文件)?将来,我希望能够自动配置 buildbot minions,如果可以的话,我会避免这种额外的配置。

如果无法完成这项工作,我可以使用 devpi 编写手动上传脚本。我希望相同的 CI 代码适用于多个项目的多个版本,因此如果我不必编写代码来匹配 wheel 文件名会更容易。这就是为什么我更愿意使用 setuptools uploadpip 有上传功能吗?

问题是 url,对于 setup.py,您需要尾随“/”,因此请将您的配置更改为:

[distutils]
index-servers =
    staging

[staging]
repository: http://pypi/root/staging/
username: buildbot
password: 12345678

而且您可能必须注册该项目,这对我来说是一个转折点:

python.exe .\setup.py bdist_wheel register -r staging
python.exe .\setup.py bdist_wheel upload -r staging