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

时间:2015-01-07 13:09:29

标签: python pip setuptools pypi python-wheel

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

我尝试过的一种方法是使用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 to http://pypi/root/staging

     

上传失败(404):未找到

运行setuptools register会产生类似的结果:

  

将蜗牛注册到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

为什么setuptools upload无法正常工作?

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

如果没有办法使这项工作,我可以使用devpi编写手动上传脚本。我希望相同的CI代码适用于多个项目的多个版本,因此如果我不必编写代码来匹配轮文件名,那将会更容易。这就是为什么我更喜欢使用setuptools uploadpip是否有任何上传功能?

1 个答案:

答案 0 :(得分:4)

问题是网址,对于setup.py,您需要尾随'/',因此请将配置更改为:

[distutils]
index-servers =
    staging

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

你希望我们必须注册projec,这对我来说是一个绊脚石:

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