命令行运行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 import HTMLTestRunner

分析提示,报错就在import 这里出错。说明在命令中执行用例,没有把项目文件添加为环境变量。需要在代码中把项目文件夹添加为环境变量,添加环境变量思路:

1、找到当前文件run_case.py 的绝对路径 :

current_directory = os.path.dirname(os.path.abspath(__file__))

2、由于测试项目文件夹布局为:run_case.py 的上一级目录才是项目的文件夹,因此需要找到run_case.py 的父文件夹,即项目的根目录

root_path = os.path.abspath(os.path.dirname(current_directory) + os.path.sep + ".")

3、把项目的根目录通过sys.path.append添加为执行时的环境变量

sys.path.append(root_path)

这3步完成后,就可以正常导入项目项目内的包了。就能正常通过命令执行自动化测试了。也就能和jenkins结合在一起了
迎加入自动化测试交流QQ群:143535941 ,进群问题回答:testway 共同讨论自动化问题

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

原文地址:https://www.cnblogs.com/testway/p/9225587.html

时间: 2024-10-23 07:30:38

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

Centos 7 python 编译报错 ImportError: No module named six 解决办法

本地编译Open vSwitch时报错 Traceback (most recent call last):   File "./ovsdb/ovsdb-idlc.in", line 8, in <module>     import ovs.json   File "/root/rpmbuild/BUILD/openvswitch-2.6.0/python/ovs/json.py", line 21, in <module>     imp

运行Scrapy工程,报错ModuleNotFoundError: No module named &#39;win32api&#39;解决方法

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

pip3安装Crypto报错ModuleNotFoundError: No module named &#39;Crypto&#39;

问题: pip3 install Crypto后 仍报错 ModuleNotFoundError: No module named 'Crypto' 解决办法: 1.进入存放Crypto的目录看下他在不在 cd /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages ls 2.发现没有Crypto,只有crypto ??‍♀? 直接重命名文件改为Crypto mv crypto Crypto 思考

Python中安装bs4后,pycharm依然报错ModuleNotFoundError: No module named &#39;bs4&#39;

学习网络抓取时,第一步出现问题. 执行示例代码 from urllib.request import urlopen from bs4 import BeautifulSoup html = urlopen("http://www.pythonscraping.com/exercises/exercise1.html") bsObj = BeautifulSoup(html, "html.parser") print(bsObj.h1) 执行结果 Traceback

python3 引入selenium库报错ModuleNotFoundError: No module named &#39;selenium&#39;

解决方法: pip install -U selenium python3 引入selenium库报错ModuleNotFoundError: No module named 'selenium' 原文地址:https://www.cnblogs.com/zouke1220/p/9326434.html

mac下已装virtualbox运行genymotion还报错找不到虚拟机的解决办法

sudo ln -s /usr/local/bin/VBoxManage /usr/bin/VBoxManage  

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

原文链接: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

Beginning Python From Novice to Professional (2) - 命令行运行Python脚本

命令行运行Python脚本 Linux下先创建一个hello.py [python] view plaincopy $ gedit hello.py 输入: [python] view plaincopy #!/usr/bin/env python print 2+2 保存退出,运行: [python] view plaincopy $ python hello.py 4 我们也可以让它变得和普通程序一样执行 执行之前,让脚本文件具备可执行属性: [python] view plaincopy

运行python代码报错UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0xe7 in position 91: ordinal not in range(128)的解决办法

1.通过搜集网上的资料,自己多次尝试,问题算是解决了,在代码中加上如下几句即可: import sys reload(sys) sys.setdefaultencoding('utf-8') 2.原因就是Python的str默认是ascii编码,和unicode编码冲突,混淆了python2 里边的 str 和 unicode 数据类型. 3.python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii. 运行python代码报错UnicodeDec