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

如何通过pyproject.toml配置setuptools实现自定义PyPI包目录结构

解决方案

要在不修改现有目录结构的前提下,把Dataset和Model作为my_ai_package的子包打包,需要修改pyproject.toml中的setuptools配置,具体如下:

替换原有配置

删除原来的[tools.setuptools.packages.find]块,改用以下配置:

[project]
name = "my_ai_package"
# 保留你原本的版本、作者等其他项目配置

[tool.setuptools]
package_dir = { "my_ai_package" = "." }  # 将my_ai_package映射到当前项目根目录
packages = [
    "my_ai_package",
    "my_ai_package.Dataset",
    "my_ai_package.Model",
    "my_ai_package.Model.utils",
    "my_ai_package.Model.some_model",
    "my_ai_package.Model.trained_models",
]

# 如需打包data、trained_models中的非Python文件,添加以下配置
[tool.setuptools.package-data]
my_ai_package.Dataset = ["data/*.csv"]
my_ai_package.Model.trained_models = ["*.pkl"]

配置说明

  • package_dir:指定my_ai_package主包的根目录对应到项目根目录,让setuptools将根目录下的Dataset和Model识别为它的子包。
  • packages:手动列出所有需要打包的包,包括主包和所有嵌套子包,确保所有模块都被纳入安装包。
  • package-data:用于打包csv、pkl这类非代码资源,确保它们能被正确安装到site-packages目录中。

正确导入方式

配置完成后,可使用以下格式导入模块:

from my_ai_package.Dataset import some_ds1_script
from my_ai_package.Model.utils import some_utils1_script
from my_ai_package.Model.some_model import some_model_script

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 06:03:26