PyO3-Maturin执行publish命令未上传Readme和License到PyPi如何解决
Maturin发布PyPi同步上传README和LICENSE的实现方案
一、配置项目打包规则(后续发布自动包含对应文件)
Maturin会直接读取Cargo的标准包配置字段来确定打包包含的内容,不需要额外的Maturin专属配置,操作如下:
- 打开项目根目录的
Cargo.toml,定位到[package]配置段,新增以下字段:# 指定README文件路径,Maturin会自动读取该文件内容作为PyPi项目介绍 readme = "Readme.md" # 填写你的项目使用的开源协议标识,如MIT/Apache-2.0等 license = "MIT" # 若需要将LICENSE文件本身打入安装包,新增该字段指定LICENSE路径 license-file = "LICENSE" # 显式指定打包时需要包含的所有文件,避免默认规则遗漏自定义文件 include = [ "src/**/*", "my_project/**/*", "Readme.md", "LICENSE", "Cargo.toml" ] - 配置完成后先执行本地打包验证,避免直接发布出错:
- 执行
maturin sdist生成源码分发包 - 执行
maturin build生成二进制wheel包 - 查看生成的
target/wheels目录下的包文件,解压确认其中包含README和LICENSE文件,验证无误后再执行maturin publish即可同步上传到PyPi。
- 执行
二、已发布版本的处理方案
PyPi平台不允许修改、补充已经上传的同版本号包的内容,已经发布的缺失文件的版本无法单独补充上传文件,只能修改版本号(比如升级补丁版本,从x.y.0升级到x.y.1),按上述规则配置后重新发布新版本即可。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

