PyCharm可运行main.py但命令行报ModuleNotFoundError如何解决?
解决命令行运行main.py时的ModuleNotFoundError问题
原因分析
PyCharm会自动将项目根目录(MyApp)添加到Python的模块搜索路径(sys.path)中,所以能正常识别并导入Code模块。但直接在命令行执行python Code\main.py时,Python仅会把Code目录加入搜索路径,不会包含MyApp目录,导致main.py里的import Code或from Code import ...语句找不到对应模块。
不修改代码的解决方案
方法1:临时添加项目根目录到PYTHONPATH
在MyApp目录下执行对应系统的命令:
- Windows:
set PYTHONPATH=%cd% python Code\main.py - Linux/macOS:
export PYTHONPATH=$(pwd) python Code/main.py
该操作会临时将当前MyApp目录加入Python的模块搜索路径,让Python能正确定位到Code模块。
方法2:以模块方式运行脚本
在MyApp目录下,使用-m参数以模块形式运行main.py:
python -m Code.main
-m参数会让Python将当前工作目录(MyApp)加入模块搜索路径,同时把Code作为一个包加载,从而正确解析模块导入语句。
方法3:切换到Code目录运行(有局限性)
如果main.py内的导入均为相对路径(比如from . import settings),可以切换到Code目录后直接运行:
cd Code python main.py
但如果main.py使用了绝对导入(比如from Code import settings),此方法会失效,因此优先推荐前两种方案。
内容的提问来源于stack exchange,提问作者user3668129
相关产品推荐
相关产品推荐

