作为持续集成管道的一部分,我尝试从存储库构建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 upload
。 pip
是否有任何上传功能?
答案 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