Windows下cmd运行python脚本报错“ModuleNotFoundError 或者 ImportError: No Module named ...”的解决方法

最近遇到一个问题,原本在Idea上运行正常的python脚本,但是在用cmd命令行运行的时候报了模块未能找到的错误:

File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'model'

当我们导入一个模块时:import  xxx 或者 from xx import xxx,默认情况下python解析器(Interpreter)会搜索当前目录、已安装的内置模块和第三方模块,搜索路径存放在sys模块的path中。
当你在使用Idea启动解释器时,当前的工作目录就是项目目录,能顺利调用同项目中的模块。但是当你通过cmd命令行启动时,当前工作目录为你启动解释器时所在的目录,如果当时的位置不是项目目录,那么项目目录中的模块就不会被找到,因此运行的时候会报模块未能找到的错误。


解决方案:

1. 在运行脚本中显示的添加模块路径(推荐,灵活性更好)

import sys

# 1.表示导入当前文件的上层目录到搜索路径中
sys.path.append('..')

# 2.绝对路径
sys.path.append('/project/model')
 
from XX import XXX

2. 把模块路径放到环境变量中作为全局变量(sys.path能扫描到)。

添加 PYTHONPATH = /path/to/your/module

参考:

https://blog.csdn.net/dcrmg/article/details/79546962

http://www.itdaan.com/blog/2016/08/12/810dde029b23e646a35e32f465a499d9.html

猜你喜欢

转载自blog.csdn.net/jusang486/article/details/82662423