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

自定义Python包安装成功但导入报ModuleNotFoundError求助

排查Python包导入失败的原因

核心原因:顶层包名称误解

你的项目结构中,src目录下直接存放module、module2,而没有名为package_name的子目录。结合你的setup.py配置:

packages=find_packages('src'),
package_dir={'': 'src'},

find_packages('src')会扫描src下的所有子包(即module、module2),最终安装到site-packages的是module/、module2/这两个独立顶层包,而非package_name作为父包。

如果你尝试执行import package_name,必然触发ModuleNotFoundError,正确的导入方式应为:

import module
from module2.submodule import code3

其他排查方向

  • 虚拟环境验证:执行which python和which pip,确认当前使用的解释器和pip属于目标虚拟环境,避免全局环境和虚拟环境混淆。
  • 导入缓存清理:删除项目目录和site-packages中对应包的__pycache__目录,重启Python解释器后重试导入。
  • 调整为带父包的结构(可选):若希望将module、module2作为package_name的子包,需修改结构和配置:
    1. 调整项目结构:
      package_name
           src/
              package_name/
                 __init__.py
                 module/
                    __init__.py
                    code.py
                 module2/
                    __init__.py
                    code2.py
                    submodule/
                         __init__.py
                         code3.py
      
    2. setup.py无需修改,此时find_packages('src')会找到package_name及其子包,安装后可通过import package_name.module导入。
  • 安装完整性验证:执行pip show -f package_name,查看Files列表,确认所有模块文件都被正确安装到site-packages的对应路径下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:52:37