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

其他格式: JSON · Markdown 中文 · English
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.

generic

解决方案

  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*"]

无效尝试

常见但无效的做法:

  1. 70% 失败

    Breaks the intended namespace-package semantics and can cause duplicate module paths.

  2. 60% 失败

    Masks the layout issue; import may still fail elsewhere.