python
module_error
ai_generated
partial
ImportError: 无法从部分初始化的模块 'mypkg' 导入名称 'foo'(很可能是由于循环导入)
ImportError: cannot import name 'foo' from partially initialized module 'mypkg' (most likely due to a circular import)
ID: python/setuptools-namespace-package-conflict
80%修复率
82%置信度
0证据数
2025-08-15首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 3.9 | active | — | — | — |
| 3.10 | active | — | — | — |
| 3.11 | active | — | — | — |
根因分析
通过 setup.py/pyproject.toml 配置的命名空间包布局错误,导致循环或部分导入。
English
Namespace package layout misconfigured via setup.py/pyproject.toml, causing circular or partial imports.
解决方案
-
85% 成功率
from setuptools import setup, find_namespace_packages setup(name='mypkg', packages=find_namespace_packages(include=['mypkg.*']))
-
90% 成功率
[tool.setuptools.packages.find] namespaces = true include = ["mypkg*"]
无效尝试
常见但无效的做法:
-
70% 失败
Breaks the intended namespace-package semantics and can cause duplicate module paths.
-
60% 失败
Masks the layout issue; import may still fail elsewhere.