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

构建Python包时,子模块与子包导入的最佳实践是什么?

Python包开发:子模块/子包导入的最佳实践

核心解决方案:开发模式安装(Editable Install)

这是适配开发阶段代码同步需求的标准方案,完美解决你提到的痛点:

  • 执行命令:在包的根目录(包含setup.py或pyproject.toml的目录)运行
    pip install -e .
    
  • 作用:会在site-packages中创建指向本地源码目录的符号链接(而非复制代码),修改本地源码后无需重新安装,导入时直接读取最新代码,同时Git可正常追踪原始目录。

规范包结构配合

确保你的包结构符合Python标准示例:

your_package/
├── pyproject.toml  # 推荐替代setup.py的现代Python包配置文件
├── your_package/
│   ├── __init__.py  # 标记为Python包
│   ├── module1.py
│   └── libraries/
│       ├── __init__.py
│       ├── sub_module1.py
│       └── sub_module2.py
└── tests/
  • 根目录下的your_package是主包目录,内部libraries为子包
  • 导入时使用规范的绝对导入:
    # 在module1.py中导入子包模块
    from your_package.libraries import sub_module1
    # 或指定具体函数
    from your_package.libraries.sub_module2 import some_function
    

临时替代方案(不推荐长期使用)

如果暂时不想用开发安装,可在项目根目录创建dev_setup.py(无需提交Git),内容如下:

import sys
from pathlib import Path

# 将项目根目录添加到sys.path
sys.path.insert(0, str(Path(__file__).parent))

在需要运行的脚本开头导入该文件即可:

import dev_setup
from your_package.libraries import sub_module1

此方式仅作临时过渡,规范度远不如开发模式安装。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 07:45:37