0

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

我尝试过的一种方法是使用 setuptools 在一行中构建和上传 wheel 文件,但这会返回 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得很好,但上传步骤会导致:

运行上传提交 C:\var\buildminion\build_proj-dev\build\dist\proj-20141216.2.dev0-py2-none-any.whl 到http://pypi/root/staging

上传失败(404):未找到

运行 setuptoolsregister会产生类似的结果:

将蜗牛注册到http://pypi/root/staging

服务器响应 (404):未找到

我知道 devpi 服务器运行正常,因为我可以手动上传文件

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

任何想法为什么 setuptoolsupload不起作用?

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

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

4

1 回答 1

4

问题是 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
于 2015-01-13T23:22:42.953 回答