Azure DevOps Server 的连接源(Artifacts):六、发布python程序(Twine pip)

1. 发布Python程序包

一般我们都是用Twine作为Python程序包的发布工具,这个工具比较简单,只需要在用户主目录中配置.pypirc文件,指定私服地址即可,下面是一个简单的示例。
1.1 在用户主目录(C:\users\devservice)中创建一个文件.pypirc,内容如下

[distutils]
index-servers =
local
 
[local]
repository: http://localhost:8081/artifactory/api/pypi/pypi-local
username: admin
password: password

1.2 发布程序包
从github下载一套示例代码https://github.com/pypa/sampleproject,或者使用自己的python项目,运行打包和上传目录

python setup.py install
python setup.py sdist build
twine upload dist/*

我们可以在Azure DevOps Server的连接源中看到发布的包文件:

image

2. 常见问题

问题1:.pypirc文件不生效

问题描述
创建了文件C:\users\devservice.pypirc文件,使用twine upload 命令,没有连接文件中指定的私服,总是去连接官网的服务器

[distutils]
index-servers =
local
 
[local]
repository: http://localhost:8081/artifactory/api/pypi/pypi-local
username: admin
password: password

解决方案
参考:https://twine.readthedocs.io/en/latest/#environment-variables
在服务器上创建了两个环境变量,指向DevOps Server的连接源:

问题2:上传总提示冲突conflict

从github下载了一套示例代码https://github.com/pypa/sampleproject
使用命令编译、上传,总提示冲突:

python setup.py install
python setup.py sdist build
twine upload dist/*

image

解决方案:
不知道为什么已经存在一个同名的模块,将setup.py中的名称修改一下,再python setup.py sdist build,上传,成功了


问题 3. 上传来源于 pypi.org/project 的包,提示冲突

  • 从https://pypi.org/project/microsoft/#files 下载一个文件
  • 使用命令twine upload .\microsoft-0.1.2-py2.py3-none-any.whl,系统提示冲突
  • image
    解决方案:
    再上传命令后面添加参数--verbose,系统返回信息
{"$id":"1","innerException":null,"message":"不能将“Flask 2.0.0”发布到该源,因为它至少在该源的一个上游源中存在。发布此副本将阻止你使用“PyPI”中的“Flask 2.0.0
”。有关详细信息,请参阅 https://go.microsoft.com/fwlink/?linkid=864880","typeName":"Microsoft.VisualStudio.Services.Packaging.Shared.WebApi.Exceptions.PackageAl
readyExistsException, Microsoft.VisualStudio.Services.Packaging.Shared.WebApi","typeKey":"PackageAlreadyExistsException","errorCode":0,"eventId":3000}
HTTPError: 409 Conflict from http://ads2/DefaultCollection/_packaging/a1/pypi/upload

这下明白原因了,原因是我从pipy.org中下载的包,不能使用这种方式上传,必须从上游源中下载安装


3. 相关文章

如果需要,你还可以从微软Azure DevOps Server 的在线文档,查询更多的权威资料,也欢迎通过下面的联系方式与我沟通,相互学习,相互提高!


https://www.cnblogs.com/danzhang
Azure DevOps MVP 张洪君
在这里插入图片描述

posted on 2022-03-13 10:35  danzhang  阅读(158)  评论(0编辑  收藏  举报

导航