将所有运行时工件从 TravisCI 部署到 PyPi
Posted
技术标签:
【中文标题】将所有运行时工件从 TravisCI 部署到 PyPi【英文标题】:Deploy all runtime artifacts from TravisCI to PyPi 【发布时间】:2018-11-17 23:17:40 【问题描述】:我有一个针对多个 Python 运行时(2.7、3.3-6)交叉编译的 Python 包。我正在尝试使用 TravisCI 构建该包并将其部署到 PyPi。但是,特定版本标记的每个运行时变体都会产生一个同名的工件:mypackage-0.11.10.tar.gz
。因此,PyPi 只接受第一个运行时变体。
重申一下:给定版本(例如,0.11.10
)的 构建 在每个运行时(2.7
、3.3
、...、3.6
)中都会成功,但每个其中有相同的工件:mypackage-0.11.10.tar.gz
。我想要的是 mypackage-0.11.10-py27.tar.gz
之类的东西,或者任何合适的东西。
我可能遗漏了一些东西,我可以确信,如果我能够针对每个运行时进行构建工作,我很高兴......但我缺乏这种信心,并且不知道一个好的方法来测试一下。
其中的一个子组件就是如何更改 TravisCI 发送到 PyPi 的工件的文件名?我无法确定是否有任何方法可以做到这一点。
这是我的.travis.yml
文件:
language: python
python:
- '2.7'
- '3.3'
- '3.4'
- '3.5'
- '3.6'
- pypy
install:
- pip install coveralls
- pip install 'coverage<4'
script: nosetests --with-coverage --cover-package=<my package name>
after_success:
- coveralls
deploy:
provider: pypi
user: <my pypi username>
password:
secure: <my encrypted pypi password>
on:
tags: true
distributions: sdist bdist_wheel
repo: <my repo>
branch: production
【问题讨论】:
【参考方案1】:.tar.gz
表明这是一个源代码分发。一个版本不能有多个源分发。但是您可以有许多二进制***,每个***用于不同的 Python 版本和架构。
【讨论】:
以上是关于将所有运行时工件从 TravisCI 部署到 PyPi的主要内容,如果未能解决你的问题,请参考以下文章