如何使用PDM构建Python包并将外部依赖一同打包?
通过PDM将外部依赖打包进Wheel的方案
1. 用PDM官方插件pdm-packer(推荐)
这是最直接的方式,专门用来把依赖和你的代码一起打包成「胖wheel」:
- 先确认
pyproject.toml里已正确声明运行时依赖:[project] dependencies = [ "semver>=2.13.0" ] - 安装
pdm-packer插件:pdm plugin add pdm-packer - 执行打包命令生成包含依赖的wheel:
生成的wheel会把所有pdm pack -f wheeldependencies里的包(比如semver)一起打包进去,用户安装这个wheel时无需单独安装依赖。
2. 手动配置打包逻辑(不推荐,适合自定义需求)
如果不想用插件,可以通过pyproject.toml的tool.setuptools配置尝试手动包含依赖,但这种方式需要自己处理依赖的收集和打包,容易出错。比如:
[tool.setuptools.package-data] "*" = ["**/*.py"]
但这种方式无法自动收集第三方依赖,还是推荐用pdm-packer。
注意点
- 胖wheel体积会比普通wheel大,适合离线部署或简化用户安装流程的场景。
- 如果依赖包含二进制扩展,打包环境要和目标运行环境匹配,避免兼容性问题。
内容的提问来源于stack exchange,提问作者Hussam
相关产品推荐
相关产品推荐

