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运行的该脚本,那么获取的就是脚本文件的路径。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值