You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python包中包含whl文件并通过pyproject.toml作为依赖安装

如何在pyproject.toml中包含未公开的本地依赖包

当你需要将未发布到PyPI或公开仓库的本地依赖(如libs/下的.whl/.zip)随自己的包一同安装时,可以通过以下两种方式配置pyproject.toml结合setuptools实现:

方法一:用find-links指定本地依赖目录

适合管理多个本地依赖的场景,配置更简洁:

[project]
name = "my-package"
version = "0.1.0"
dependencies = [
    "package_name",  # 填写本地包的实际名称,需与.whl/.zip中的包名一致
    # 其他常规依赖项...
]

[tool.setuptools.find-links]
paths = ["./libs/"]  # 指定本地依赖所在的目录

方法二:直接在依赖列表中使用相对路径URI

针对单个本地依赖,可直接在dependencies中用PEP 508规范的相对路径写法(注意不要用file:///开头的绝对路径格式):

[project]
name = "my-package"
version = "0.1.0"
dependencies = [
    # ...其他依赖
    "package_name @ file:./libs/package_name.whl"  # 替换为你的.zip/.whl文件路径
]

必须步骤:确保本地依赖被打包进分发包

无论用哪种方法,都要配置打包工具将libs/下的依赖文件包含到你的包分发中,否则用户安装时会找不到文件:

方式1:通过pyproject.toml配置

[tool.setuptools.include-package-data]
true = true

[tool.setuptools.package-data]
"" = ["libs/*.whl", "libs/*.zip"]  # 匹配libs目录下的所有目标文件

方式2:使用MANIFEST.in文件

在项目根目录创建MANIFEST.in,写入:

include libs/*.whl
include libs/*.zip

验证安装效果

配置完成后,可测试两种安装场景:

  • 本地可编辑安装:执行pip install --editable .
  • 打包后安装:先运行python -m build生成dist目录下的包,再执行pip install dist/my_package-0.1.0-py3-none-any.whl

两种场景下,你的包和对应的本地依赖都应该被自动安装。

内容的提问来源于stack exchange,提问作者mtrm1234

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 09:16:00