# ImportError: 无法从部分初始化的模块 'mypkg' 导入名称 'foo'（很可能是由于循环导入）

- **ID:** `python/setuptools-namespace-package-conflict`
- **领域:** python
- **类别:** module_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

通过 setup.py/pyproject.toml 配置的命名空间包布局错误，导致循环或部分导入。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 3.9 | active | — | — |
| 3.10 | active | — | — |
| 3.11 | active | — | — |

## 解决方案

1. **** (85% 成功率)
   ```
   from setuptools import setup, find_namespace_packages
setup(name='mypkg', packages=find_namespace_packages(include=['mypkg.*']))
   ```
2. **** (90% 成功率)
   ```
   [tool.setuptools.packages.find]
namespaces = true
include = ["mypkg*"]
   ```

## 无效尝试

- **** — Breaks the intended namespace-package semantics and can cause duplicate module paths. (70% 失败率)
- **** — Masks the layout issue; import may still fail elsewhere. (60% 失败率)
