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

时间:2022-09-02 13:53:17

在jenkins构建步骤,使用Execute windows batch command调用python脚本的时候,在jenkins log发现报错:ImportError: No Module named TestRequests.

后来,在使用windows cmd 进行调试的时候,发现一个相同的python脚本(import了一个相同工作区中的其他文件夹中的一些模块)在PyCharm 或者Python IDLE中可以正常运行,但是使用cmd 运行该脚本,却报错:ImportError: No Module named … ,这是因为Python在启动解释器(Interpreter)的时候不只会导入环境变量中sys.path发现的模块,还会导入当前工作目录下的模块。当你在IDLE中启动解释器时,当前的工作目录就是项目目录,能顺利调用同项目中的模块;但是当你通过命令行启动时,当前工作目录为你启动解释器时所在的目录,如果当时的位置不是项目目录,那么项目目录中的模块就不会被找到,比如:
Windows cmd下运行python脚本报错“ImportError: No Module named ...”的解决方法
因此,在运行running.py时,报错:ImportError: No Module named …
这是因为在上面的项目中有如下脚本,运行running.py需要调用另一个目录下的TestRequest.py中。如果在cmd命令行中运行的时候会出现以下错误:
ImportError: No Module named TestRequests
解决方法:

import sys
print (sys.path)

通过上述的语句,可以查看到需要加载的模块路径,为了避免错误,需要将这些模块路径加载到所需要运行的脚本中。
Windows cmd下运行python脚本报错“ImportError: No Module named ...”的解决方法
然后,再次运行此脚本,就不会出现这样的错误了。

参考:
https://*.com/questions/15514593/importerror-no-module-named-when-trying-to-run-python-script
http://www.cnblogs.com/arkenstone/p/5765522.html