解决python在cmd运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"

1.下图为我的自动化测试工程结构图

我通过运行run.bat批处理文件,调用cmd控制台运行start_run.py来开始我的自动化测试,但是出现如下错误:

大家可能知道我们的工程在IDE(Pycharm)中运行和我们在cmd中运行的路径是不一样的,在pycharm中运行时,

会默认pycharm的目录+我们的工程所在目录为运行目录,而在cmd中运行时,会以我们的工程目录所在目录来运行

而在import包时,会首先从pythonPATH的环境变量中来查看包,如果没有你的PYTHONPATH中所包含的目录没有

工程目录的根目录,那么你在导入不是同一个目录下的其他工程中的包时会出现import错误

解决方法:在你运行的文件中将你的工程目录加入到PYTHONPATH中,具体方法如下:

import os,sys

sys.path.append("path")  //path为你的工程根目录的绝对路径

如果此时你运行时依然报错,请先检查是否将根目录加入到了PYTHONPATH中,方法为:

import os

PATH = os.environ

for key in PATH:

  print(key,PATH[key])

如果目录中包含你所在的工程根目录,此时你再查看一下你的所有的目录下是否包含__init__文件,

当我们导入另外一个包下的模块时,首先需要判断这个包是否为python包,而__init__文件就是

用来证明这个目录是一个python包的目录!

而我在按照网上的一些操作完成后,发现我依然运行失败,此时我发现我的根目录下也有一个__init__文件

而我删除了该文件之后,运行一切正常,我也不知道具体的原因,感觉有点奇怪!

原文地址:https://www.cnblogs.com/robert-zhang/p/9060365.html

时间: 2024-10-06 16:05:54

解决python在cmd运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"的相关文章

命令行运行python项目文件,报错:ModuleNotFoundError: No module named 'xxxx' 解决办法

在pycharm中写好了自动化测试脚本,并能在pycharm中正常运行,由于要考虑到无人值守时能自动执行,执行时就需要脱离pycharm,直接能用命令执行.但是直接用命令执行用例文件:python3 D:\pycode\autotest_framework\case\run_case.py 结果报错,找不到模块 自动化项目的结构如下:用例run_case.py 和工具类utils下的工具 不在同一个文件夹下面.在脚本中需要导入包如: from utils.HTMLTestRunner impor

python解决导入自定义库失败: ModuleNotFoundError: No module named 'MyLib'

python安装目录:...\python_3_6_1_64bit 新建文件:chenyeubai.pth,写入库所在的绝对路径E:\workSpace\my_code\learn\myLib 安装路径下的.pth文件会在运行时将文件中路径写入path python解决导入自定义库失败: ModuleNotFoundError: No module named 'MyLib' 原文地址:https://www.cnblogs.com/chenyuebai/p/8416706.html

Python运行出现:ModuleNotFoundError: No module named 'logbook',解决办法

ModuleNotFoundError: No module named 'xlrd' ModuleNotFoundError: No module named 'xlwt' AttributeError: module 'requests' has no attribute 'get' ModuleNotFoundError: No module named 'yaml' 打开终端,输入: pip install SomePackage               # 最新版本 pip ins

python程序在命令行执行提示ModuleNotFoundError: No module named 'XXX' 解决方法

原文链接:https://www.cnblogs.com/dreamyu/p/7889959.html 在ide中执行python程序,都已经在默认的项目路径中,所以直接执行是没有问题的.但是在cmd中执行程序,所在路径是python的搜索路径,如果涉及到import引用就会报类似ImportError: No module named xxx这样的错误,解决方法: 在报错的模块中添加: import sys import os curPath = os.path.abspath(os.path

运行Scrapy工程,报错ModuleNotFoundError: No module named 'win32api'解决方法

1.运行爬虫scrapy crawl name,报错ScrpyModuleNotFoundError: No module named 'win32api' 2.解决方法: 在https://github.com/mhammond/pywin32/releases找到合适的软件,进行下载安装. 3.完成安装: 4.安装成功后,再次运行scrapy crawl name.运行成功 运行Scrapy工程,报错ModuleNotFoundError: No module named 'win32api

解决 ModuleNotFoundError: No module named 'pip'

安装其它python包时,提示说 pip 10.0.1可用,就更新了一下,但是 更新过程中出现了错误,如图所示 因为这个错误导致 pip找不到, 可以首先执行  python -m ensurepip  然后执行 python -m pip install --upgrade pip  即可更新完毕. 如下图所示 解决 ModuleNotFoundError: No module named 'pip' 原文地址:https://www.cnblogs.com/wanghuaqiang/p/98

Python之TabError: inconsistent use of tabs and spaces in indentation和ModuleNotFoundError:No module named 'win32api'

1.TabError: inconsistent use of tabs and spaces in indentation 这是我的代码,感觉没啥不对, 后来运行之后出现了下面的错误,我也是弄了好久才弄好这个bug. . 这个一般是由于你用编译器写代码时的Tab符和空格符混用引起的.对于Notepade++来说,只要你设置"显示空格和制表符"就行. 1.点击如下按钮: 2.手动设置: View->Show Symbl->Show All Characters 下面是设置之

python异常之ModuleNotFoundError: No module named 'test01inner02'

当我们使用sys.path.append(args) 指令向程序中导入模块时其实本次append操作只是在内存中完成的,如果要永久性的添加需要修改环境变量. 我们发现当我们使用print(sys.path)后返回的是一个列表,其中包含当前文件所在项目的路径,还有python的默认加载库,添加只是暂时的. 错误调用: 目录结构: A.test0102.py文件 # coding = utf-8 def sing(): print("happay new year") B.init.py文

Scrapy运行报错:ModuleNotFoundError: No module named 'douban.douban'

运行scrapy爬虫报错: from douban.douban.items import DoubanItem ModuleNotFoundError: No module named 'douban.douban' 解决问题注意两点: 1. 引入items的路径.items包实际是在上一级目录的,直接对着教程操作容易忽略这个问题 2. douban.items 这个导入包,不知为何无法识别,只能以..items 的方式导入 from douban.douban.items import Do