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

Python使用pyproject.toml和setup.cfg打包自定义模块的导入问题

问题根因

你遇到的嵌套导入问题核心是项目根目录被识别成了Python包,同时编辑模式安装的旧缓存/残留配置导致路径异常。

解决步骤

1. 清理旧安装残留

多次执行以下命令,直到提示没有安装dummy包为止,避免多版本冲突:

pip uninstall -y dummy

2. 删除多余的__init__.py

检查你外层的dummy项目根目录下是否存在__init__.py文件,如果有直接删除。项目根目录不需要该文件,只有实际存放业务代码的内层dummy目录才需要保留__init__.py。

3. 修正配置错误(可选,可同时完全移除setup.py)

你当前的配置有两个可优化的点,调整后可以完全删除冗余的setup.py文件:

  • 把setup.cfg [metadata]段下的zip_safe = False移到[options]段下,该配置不属于元数据段
  • 在setup.cfg [metadata]段添加版本自动读取配置,不需要再通过setup.py读取版本:
[metadata]
name = dummy
version = attr: dummy._version.__version__
# 其他原有元数据配置保持不变

调整后直接删除整个setup.py文件即可,当前版本的setuptools已经支持直接从模块属性读取版本号。

4. 重新安装

切换到项目根目录的上层目录,重新执行开发模式安装:

pip install -e dummy
验证

安装完成后执行以下命令验证导入路径是否正常:

python -c "import dummy; print(dummy.__version__); from dummy.subpackage1 import script1; print('子模块导入成功')"

正常输出版本号和「子模块导入成功」即配置生效。

内容的提问来源于stack exchange,提问作者André Lourenço

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:54:02