ModuleNotFoundError: No module named ‘xxxx’


通过在命令行窗口执行:python xxx.py –arg1=xxx 命令来运行Python脚本往往会报上面的错误,但是在pycharm中运行是没有问题的。这是由于该py脚本引入的xxx模块的路径,并不在命令行窗口执行命令的环境中,但是pycharm是帮我们添加了的,默认是添加了project的根路径,所以我们在 from xxx 的时候可以找到xxx模块。

那么,我们在命令行窗口执行命令的时候,所默认的环境路径有哪些?
1.环境变量
2.命令中python对应的环境,如果你用虚拟环境中的python来执行脚本,那么对应的环境就是,该虚拟环境对应的lib库(python自带+pip安装的)等,所以xxx.py文件中的import os等却是可以识别的,因为os是python自带的。
3.命令行窗口的当前路径
所以,如果你的xxx模块的路径不在这三个里面,则需要在py脚本中添加模块路径到环境中。

如何添加模块路径到环境?
1.只需要引入xxx模块路径的父级路径即可,一般就是工程的根路径,pycharm帮我们做的就是自动添加了工程根路径。
2.先获取py脚本文件所在的路径,再逐步获取模块路径
3.提供几个常见函数
(1)获取脚本文件路径 cur_file_path =  os.path.abspath(__file__)
(2)获取父级路径    parent_path = os.path.dirname(cur_path)
注意:不要使用 os.getcwd()来获取脚本文件的路径,os.getcwd()其实是获取脚本执行时候的环境路径。例如,你在命令行窗口运行的该脚本,那么该函数获取的就是命令行窗口中的当前路径;如果在pycharm运行的该脚本,那么获取的就是脚本文件的路径。

转载自:https://blog.csdn.net/weixin_37997371/article/details/82382449

You may also like...

退出移动版