python命令行执行脚本找不到模块ModuleNotFoundError问题

 更新时间:2023年06月17日 09:12:52   作者:林凡尘coding  
这篇文章主要介绍了python命令行执行脚本找不到模块ModuleNotFoundError问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

python命令行执行脚本找不到模块ModuleNotFoundError

最近在使用python做分群数据处理,需要在命令行中执行脚本处理业务。

业务流程就是:命令行脚本 Group.py 调用service模块下的AppUseService 服务,命令行实现才用的是 Google 的 Fire类库。在pycharm中是可以正常运行,在git bash shell中异常。

报错信息

执行命令:

python command/Group.py continueWeek

提示找不到我代码所定义的模块:

$ python command/Group.py continueWeek
Traceback (most recent call last):
  File "command/Group.py", line 9, in <module>
    from service.AppUseService import AppUseService
ModuleNotFoundError: No module named 'service'

项目结构

解决方案

在命令行的脚本Group.py最开始的前几行加上如下代码,实现将脚本加入系统的路径。

强调:要在命令行脚本添加!并且一定要放到前面!这样才能有效加载其他模块!!!

import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)

python命令行运行时,报错ModuleNotFoundError: No module named ‘XXX‘,找不到自定义模块

python运行报错

ModuleNotFoundError: ModuleNotFoundError: No module named 'step_defss’

报错原因

在python中,一个.py文件就是一个模块,导入模块等于导入文件

是文件,就有文件路径,所以这个情况,本质上就是找不到文件

1、很多时候在pycharm运行一切正常,但是到命令行中运行py文件,就会报错

原因:

pycharm在每次运行时,都会检索整个工程目录,把目录都添加到sys.path中,运行的时候,就能够找到对应的模块.py文件

2、命令行找不到模块

原因:

命令行执行时,往往都是直接运行某个.py文件,缺少路径检索的步骤(需要我们自己代码加上自动检索)

解决方法

在需要执行的.py文件中,加上以下这段代码,就是在import模块文件前,先将模块路径,添加到sys.path,就能够正常引入模块

import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
from step_defss.scenario_steps import *
#接后续代码

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解析Pytest3种配置文件方式

    解析Pytest3种配置文件方式

    pytest的主配置文件,可以改变pytest的默认行为,本文主要介绍了解析Pytest3种配置文件方式,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • python实现读Excel写入.txt的方法

    python实现读Excel写入.txt的方法

    下面小编就为大家分享一篇python实现读Excel写入.txt的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python自带tkinter库实现棋盘覆盖图形界面

    python自带tkinter库实现棋盘覆盖图形界面

    这篇文章主要为大家详细介绍了python自带tkinter库实现棋盘覆盖图形界面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Python爬取csnd文章并转为PDF文件

    Python爬取csnd文章并转为PDF文件

    这篇文章主要介绍了Python爬取csnd文章并转为PDF文件,通过开发者工具进行抓包分析 分析数据从哪里来的,然后发送请求 对于文章列表页面发送请求,获取数据 获取网页源代码,解析数据文章的url及文章标题,发送请求 对于文章详情页url地址发送请求,需要的朋友可以参考一下
    2022-01-01
  • Django框架使用富文本编辑器Uedit的方法分析

    Django框架使用富文本编辑器Uedit的方法分析

    这篇文章主要介绍了Django框架使用富文本编辑器Uedit的方法,结合实例形式分析了Django框架中使用Uedit的安装、配置方法及Uedit相关插件制作方法,需要的朋友可以参考下
    2018-07-07
  • 利用Python编写一个记忆翻牌游戏

    利用Python编写一个记忆翻牌游戏

    本文带大家写个小游戏,不过老是用pygame也没啥意思,这次我们换点新花样,用python自带的tkinter包写一个记忆翻牌小游戏,感兴趣的可以了解一下
    2022-03-03
  • python操作MongoDB基础知识

    python操作MongoDB基础知识

    MongoDB支持好多语言,今天我们就写一写python操作MongoDB的知识,从安装MongoDB到操作MongoDB全都有了。
    2013-11-11
  • 使用Python+wxpy 找出微信里把你删除的好友实例

    使用Python+wxpy 找出微信里把你删除的好友实例

    今天小编就为大家分享一篇使用Python+wxpy 找出微信里把你删除的好友实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • 在python中实现求输出1-3+5-7+9-......101的和

    在python中实现求输出1-3+5-7+9-......101的和

    这篇文章主要介绍了在python中实现求输出1-3+5-7+9-......101的和,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例

    python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例

    这篇文章主要介绍了python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例,需要的朋友可以参考下
    2020-02-02

最新评论