pycharm运行正常,但命令行执行提示module不存在的多种解决方式

问题描述

在这里插入图片描述
在执行某个测试模块时出现提示,显示自定义模块data不存在,但是在PyCharm下运行正常。错误信息如下:

Traceback (most recent call last):
  File "/run/channelnterface-autocase/testcases/test_chanel_detail.py", line 2, in <module>
    from data.chanel_detail_makecase import *
ModuleNotFoundError: No module named 'data'

问题原因

大部分情况下,此类问题是由于包的路径没有设置正确所致。通过打印 PyCharm 和命令行下的 sys.path 路径信息对比,可以发现以下差异:
在当前目录下__init__添加

import sys
print("系统路径",sys.path)

分别用PyCharm与命令行执行

  • PyCharm
    包含了当前的目录以及这个代码的根目录(前提是需要将这个根目录设置为Sources Root)
    在这里插入图片描述
    结果:系统路径 [‘D:\uitest\channelnterface-autocase\testcases’, ‘D:\uitest’, ‘D:\uitest\channelnterface-autocase’…

  • 使用Pyhton命令行执行
    结果为系统路径 [‘D:\uitest\channelnterface-autocase\testcases’…

在PyCharm设置了Sources Root,向系统变量增加了当前目录的根目录,所以PyCharm运行时能找到自定义包的。但Pyhton命令行执行时少了添加根目录路径的步骤,导致找不到包了。

解决方法

向执行代码中添加根目录路径,一般添加在头部

方法一:写死绝对路径
import sys
sys.path.append('xxx/xxx/xxx/')
方法二:使用os获取

os.path.dirname获取目录,此处就是获取目录的父目录。如果目录层级更多,就需要多加一层 os.path.dirname

import os,sys
project_root =  os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_root)
方法三:os获取+/…/

如果层级更多,则需要多加"…/" ,看起来比方法二更加简洁点

import os,sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../')
方法四,直接加到环境变量path中

输入以下命令

export PYTHONPATH=$PYTHONPATH:/xxx/

总结:

可能还有其他方法,但大体上找不到module的问题,大部分是路径变量问题,按照这个思路去解决就可以解决大部分类似问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/258138.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

直播种类之VR全景直播

VR全景直播是一种结合虚拟现实技术和直播的全新体验。通过全景相机拍摄&#xff0c;观众可以身临其境地感受直播现场的氛围和真实感&#xff0c;提供逼真的观看体验。 VR全景直播的优势在于: 1.身临其境的观看体验:观众可以像真的在现场一样&#xff0c;通过虚拟现实设备探索…

基于python的leetcode算法介绍之递归

文章目录 零 算法介绍一 简单示例 辗转相除法Leetcode例题与思路[509. 斐波那契数](https://leetcode.cn/problems/fibonacci-number/)解题思路&#xff1a;题解&#xff1a; [206. 反转链表](https://leetcode.cn/problems/reverse-linked-list/)解题思路&#xff1a;题解&…

OpenHarmony开发环境快速搭建(无需命令行)

一. 搭建Windows环境 在嵌入式开发中&#xff0c;很多开发者习惯于使用Windows进行代码的编辑&#xff0c;比如使用Windows的Visual Studio Code进行OpenHarmony代码的开发。但当前阶段&#xff0c;大部分的开发板源码还不支持在Windows环境下进行编译&#xff0c;如Hi3861、H…

数字助听器如何处理声音?

数字助听器如何处理声音&#xff1f; 助听器的作用不仅仅是放大声音。为了创建可改进语音识别的自定义声音配置文件&#xff0c;他们以多种方式处理声音。 麦克风 与人耳一样&#xff0c;数字助听器不直接处理声波。首先是麦克风。它们充当换能器&#xff0c;捕获机械波能并将…

Verilog 仿真可视化

Verilog 仿真可视化 飞多学堂 飞多学堂 2023-12-11 09:37 Posted on 山东 DigitalJS 是一个基于 JavaScript 实现的开源数字电路模拟器&#xff0c;旨在模拟由硬件设计工具&#xff08;如 Yosys&#xff09;合成的电路。由弗罗茨瓦夫大学的Marek Materzok开发&#xff0c;源文…

手机数码品牌网站建设的作用是什么

手机数码产品几乎已经成为成年人必备的&#xff0c;包括手机、电脑、摄像机、键盘配件等&#xff0c;同时市场中相关企业也非常多&#xff0c;消费者可供选择的商品类型也很多样&#xff0c;而对企业来讲&#xff0c;只有不断提升品牌形象、获客拉新等才能不断提升企业地位&…

easyexcel常见注解

easyexcel常见注解 一、依赖 <!--阿里巴巴EasyExcel依赖--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.10</version></dependency>二、常见注解 ExcelProperty 注解中…

绝地求生什么游戏?

绝地求生是一款由蓝洞公司开发并发行的多人在线生存竞技游戏&#xff0c;也是一款备受玩家热爱和追捧的射击游戏。游戏灵感源自于日本电影《葛洛历亚号》&#xff0c;玩家将扮演一名跳伞降落在荒岛上的幸存者&#xff0c;通过收集资源、与其他玩家进行战斗来生存到最后一名&…

FastApi-快速入门FastApi框架(1)

前言 本文是该专栏的第1篇&#xff0c;后面会持续分享FastApi以及项目实战的各种干货知识&#xff0c;值得关注。 FastApi是一个现代、快速&#xff08;高性能&#xff09;的基于Python3.6的web框架&#xff0c;用于构建API。它旨在使API开发更快&#xff0c;更简单&#xff0…

Polar 这又是一个上传

Polar 这又是一个上传 开局还是一个文件上传界面 有前端后缀检查&#xff0c;这个好绕&#xff0c;抓包改后缀就行 绕过后burp可以直接传一个php上去 getshell 但是无法cat flag&#xff0c;感觉权限不够&#xff0c;需要提权。 查找具有suid权限的命令 1system(find / -use…

网络协议小记

一、TCP/IP协议 作为一个小萌新&#xff0c;当然我无法将tcp/ip协议的大部分江山和盘托出&#xff0c;但是其中很多面试可能问到的知识&#xff0c;我觉得有必要总结一下&#xff01; 首先&#xff0c;在学习tcp/ip协议之前&#xff0c;我们必须搞明白什么是tcp/ip协议。 1、…

第二十一章 : Spring Boot 集成定时任务(一)

第二十一章 &#xff1a; Spring Boot 集成定时任务&#xff08;一&#xff09; 前言 本章知识点&#xff1a; 介绍使用Spring Boot内置的Scheduled注解来实现定时任务-单线程和多线程&#xff1b;以及介绍Quartz定时任务调度框架&#xff1a;简单定时调度器&#xff08;Simp…

SpringIOC之AnnotatedElementKey

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

【网络安全】—计算机网络基础

文章目录 网络必备基础物理层数据链路层与交换机网络模型OSI/TCP对等传输虚拟局域网VLAN静态路由与配置网络地址转换NAT访问控制列表ACLIP协议与IP地址分类子网掩码网关子网划分总结 计算机网络是指将地理位置不同的、功能独立的多台计算机通过通信线路连接起来&#xff0c;以功…

部署智能合约以及 javascript 调用合约函数(Web3项目二实战之三)

在上一篇 智能合约是Web3项目的核心要务(Web3项目二实战之二) ,我们已然为项目编写了智能合约,在攥写完智能合约后,该项目将完成了一大部分,剩下无非就是用户界面交互的内容。 然而,在码完了智能合约代码后,起着承前启后关键性的便是,前端界面与智能合约的交互。 智能…

运行hive的beelin2时候going to print operations logs printed operations logs

运行hive的beelin2时候going to print operations logs printed operations logs 检查HiveServer2的配置文件hive-site.xml&#xff0c;确保以下属性被正确设置&#xff1a; <property><name>hive.async.log.enabled</name><value>false</value>…

sql_lab中sql注入之union联合注入

1.判断注入类型 gxalabs.com - 该网站正在出售&#xff01; - gxalabs 资源和信息。 没有回显 http://sss-s347glt.gxalabs.com/Pass-02/index.php?id1 and 11 http://sss-s347glt.gxalabs.com/Pass-02/index.php?id1 and 12 and11和and12回显效果一致&#xff0c;则判断…

Ps:文本的基本操作

在输入文字前&#xff0c;先确定是输入点文本还是段落文本&#xff0c;尽管二者可以相互转换。既可以对文本图层中的所有文本统一设置格式、移动或变换&#xff0c;也可以选择其中的一个或几个字符、一行或一段进行编辑。 新建点文本 使用文字工具在画布上单击并开始输入的文字…

[toolschain] 头文件有下划线报错不好看,ubuntu下vscode如何设置包含目录路径,以及如何找到安装包的头文件

写在前面 本文是把之前的散落在不同blog中的记录&#xff0c;总结单独合成了一篇文章 vscode 如何配置文件路径 之前使用visual studio 感觉在这一点上 更方便&#xff0c;如果vscode 要配置一下 。 新建&#xff1a;c_cpp_properties.json 或者 ctrl shift p在设置中查找 c…

深度学习目标检测(2)yolov3设计思想

YOLOv3基础 YOLOv3算法基本思想可以分成两部分&#xff1a; 按一定规则在图片上产生一系列的候选区域&#xff0c;然后根据这些候选区域与图片上物体真实框之间的位置关系对候选区域进行标注。跟真实框足够接近的那些候选区域会被标注为正样本&#xff0c;同时将真实框的位置…