使用Travis CI向PyPI部署包无报错却失败该如何解决?
问题原因与修复方案
出现无报错构建失败的核心问题是你的配置缺少部署Python包的必要环节,具体问题和修复方式如下:
- 没有配置Python包构建步骤,Travis不会自动生成上传PyPI所需的安装包文件
- 未配置
skip_cleanup参数,Travis默认会在部署前清理工作目录,即使你手动构建了包也会被删除 - 缺少
distributions参数指定要上传的包格式
修正后的完整配置
language: python python: - 3.6 # 安装构建所需依赖 install: - pip install --upgrade pip setuptools wheel twine - pip install -r requirements.txt # 如有项目依赖可保留该行,无依赖可删除 # 构建包+校验(如果有单元测试也可以在该阶段添加执行命令) script: - python setup.py sdist bdist_wheel # 可选:提前校验包格式是否符合PyPI上传要求 - twine check dist/* deploy: provider: pypi username: "__token__" password: "$PYPI_TOKEN" skip_cleanup: true # 关键配置:避免清理构建生成的dist目录文件 distributions: sdist bdist_wheel # 指定要上传的包格式 skip_existing: true # 避免同版本号重复上传导致的报错 on: branch: main
额外检查项
- 确认仓库根目录存在
setup.py或pyproject.toml等Python包必需的配置文件 - 确认Travis仓库设置中添加的
PYPI_TOKEN环境变量名称拼写正确,且值为PyPI生成的有效令牌 - 确认你要部署的分支确实为
main,如果仓库默认分支为master需要对应修改配置中的分支名
内容的提问来源于stack exchange,提问作者Saeed Esmaili
相关产品推荐
相关产品推荐

