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

Python包安装异常:用-e正常运行,无-e则报ModuleNotFoundError

问题解决方案

问题出在你的包结构和entry point配置不匹配,导致非 editable安装时Python找不到main模块:

核心原因

使用-e(可编辑模式)安装时,src目录会被直接加入Python的模块搜索路径,所以src下的main.py能被当作顶级模块导入;但非可编辑安装时,pip会按照你在setup.cfg里的配置打包并安装包,此时main.py并没有被注册为顶级模块,自然找不到。

修复步骤(推荐标准包结构)

1. 调整项目目录结构

把src下的文件放到一个和你的包名一致的子目录中(比如包名为project_name),结构变为:

.
├── pyproject.toml
├── README.md
├── requirements.txt
├── setup.cfg
└── src
    └── project_name
        ├── __init__.py
        ├── main.py
        └── projectName.py

2. 更新setup.cfg配置

  • 在[options]段添加包路径配置,让setuptools正确识别你的包:
[options]
packages = find:
package_dir =
    = src
  • 修正entry points,指向包内的main模块:
[options.entry_points]
console_scripts = 
    project-name=project_name.main:main

备选方案(不调整目录结构)

如果不想修改目录结构,可以在setup.cfg的[options]段指定要安装的顶级模块:

[options]
py_modules = main, projectName

这种方式适合单模块或简单多模块的小型包,但长期来看还是推荐标准的包目录结构,便于维护和扩展。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:50:01