python导入模块错误-No module named XXX-图文解决方案

问题描述:

        使用python ide执行脚本正常,使用python直接执行报错,报错“不存在对应模块”

问题原因分析:

        Q1: 等同于python脚本在ide和console中执行的区别

        Q2: 因为在ide里执行脚本的时候,不仅会导入path环境变量中的模块,还会导入当前工作目录下模块,所以idle会很容易调用到相应的模块;【因为大多数的代码,是在创建项目的时候是使用ide进行编辑的】。 而在python console中执行python命令,会自动导入python path环境变量中的模块,还会将python.exe所在目录下的模块进行导入,如果所在目录不是创建的项目所在目录,就无法导入项目中的模块;;只能通过添加到python path中进行导入;【这个在python里执行脚本的时候容易报错 “ModuleNotFoundError: No module named 'Delivery'”】

问题解决方法:

        最简单的方式,使用固定的添加path环境变量

import sys, os#当前文件所在绝对路径
curPath = os.path.dirname(__file__)#文件所在根目录路径
rootPath = os.path.split(curPath)[0]#检查下rootPath是否为文件所在根目录路径
print("rootpath=====>",rootPath)#将rootPath添加到系统path环境变量中
sys.path.append(rootPath)【另一种写法:sys.path.insert(0,rootPath)】#查看当前系统path环境变量中的路径是否包含添加的rootPath
print(sys.path) 

FAQ可能遇到的问题:

        问题一:添加路径之后还报错?

        原因分析:路径还未到根目录

        解决办法:

       #如果上一步还未到根路径,则进行再一次提前上级目录 

        sys.path.append(os.path.split(rootPath)[0])

        #查看当前path环境变量中的路径       

         print(sys.path)

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

python中导入模块使用哪个关键字_关于python导入模块的关键字介绍

关于python导入模块的关键字介绍 发布时间:2020-04-17 10:13:26 来源:亿速云 阅读:101 作者:小新 今天小编给大家分享的是关于python导入模块的关键字介绍,很多人都不太了解,今天小编为了让大家更加了解pyt…

【Python问题】Python 导入模块的三种方式ModuleNotFoundError: No module named ‘模块名‘

Python 导入模块的三种方式ModuleNotFoundError: No module named 模块名 问题一、Python解释器查找模块文件的过程。二、解决方法记录一下 大家可以参考这个文档的解释很清楚:python导入模块的三种方式超详细http://c.biancheng.net/view/4645.html 问题 写程序i…

python怎么导入数学模块_python怎么导入模块

python中的模块即.py文件,模块的导入方式通常有两种:1是直接使用import语句导入;2是使用from..import..结构引入。 使用 import 导入模块的语法,但实际上 import 还有更多详细的用法,主要有以下两种:import 模块名1 [as 别名1], 模块名2 [as 别名2],…: 导入整个模块。…

python如何导入模块中的类_python导入模块中类的方法

自定义标题 python导入模块中类的方法 1、导入模块中的单类 2、一个模块中存储多个类时导入的方法 3、导入模块中所有类的方法 4、导入模块中的类时把类使用as取一个别名 python导入模块中类的方法 1、导入模块中的单类 》创建模块 #file:person.py class Person(): def __init…

python之模块导入及模块导入路径

一、从模块导入对象 1、import 模块名 [as 别名]。 也可以一次导入多个模块,多个模块之间用逗号隔开 (1)导入格式: import 模块名 [as 别名] (2)使用方法:使用时要在对象前面加上模块名作为前…

python无法导入模块_python导入模块失败的原因是什么

py执行文件和模块同属于同个目录(父级目录),才能直接import模块:如果不在同一目录,可以在python环境下使用sys.path.append(path)添加相关的路径,但在退出python环境后自己添加的路径就会自动消失! 模块 1、模块的定义: 为了编写可维护的代码,我们把很多函数分组,…

测绘——AutoCAD教育版打印戳去除

我们在使用CAD和Cass进行画图的时候,有时会参照一些老图,一些老图数据是使用教育版CAD绘制的,复制或插入均会导致我们的数据在每次打开是都会提醒检测到教育版打印戳记 (Fig. 1),以及在打印时也会看到。当我…

AutoCAD LT 2022下载及教程

资源地址:AutoCAD LT 2022 Autodesk AutoCAD LT 2022是一款功能强大的专业计算机辅助软件,有了该软件用户可以更快更精准的创建2D模型,该软件拥有完整的2D命令并允许用户创建工程图,对其进行修改并发布项目的工作文件。同时还提供…

教育版AutoCAD下载开启,你知道吗?

你知道,学生和教师可以免费获取AutoCAD吗?只要符合条件,学生和教师就可免费获得 Autodesk 产品和服务的一年期教育版访问权限。那你知道该如何获取和下载吗? 以下就是教育版AutoCAD下载需要注意的事项,本篇将会从安装…

国产在线三维云CAD:CrownCAD (在线建模CAD软件)

云CAD就是在线建模CAD软件,即打开浏览器就可以进行建模的软件。云CAD可以部署在公有云,也可以部署在私有云。 尤其是可以在国产芯片和国产操作系统上运行,所以非常适合于自主可控要求高的领域。具备云存储、云计算、多终端、多人协同设计等优…

【去除教育】去除打印教育戳记插件

添加公众号:“第一设计群” 去教育打印戳记插件 去除教育版戳记插件,可以避免在打印时候图纸出现这个戳记,对图纸造成一些美观的影响。相信很多朋友都遇到过这个问题: 使用方法 1、下载插件到电脑任意位置 2、打开CAD、新建空白文…

【Windows驱动篇】解决Windows驱动更新导致AMD Software软件无法正常启动问题

【Windows驱动篇】解决Windows驱动更新导致AMD Software软件无法正常启动问题 【操作前先备份好电脑数据!!!设置系统还原点等,防止系统出现问题!!!谨慎请操作!】 【操作前先备份好…

原创:CAD批量去除教育版戳记

批量去教育版戳记网上给出的方法及搜索到的软件基本都不能用,最好的方法是,把 DWG 文件转换为 DXF 文件,后再转换回来。所以首先我们需要把 DWG 文件转换为 DWF 文件,步骤如下 1.下载Acme CAD Converter,完成后打开&am…

CAD插件学习系列教程(七) 去除CAD教育版戳记 (两种方法)

AutoCAD分为商业版和教育版两个版本,教育版为防止图纸作作商业用途,在打印CAD图纸的时候,会添加教育版戳记。 打开有CAD教育版戳记的图纸,打开的时候会出现“此图形将显示一则消息‘由Autodesk教育版产品生成’。是否继续&#x…

什么是IPAM?如何使用IPAM来管理IP地址和DHCP?

在计算机网络中,IPAM(IP Address Management)是一种用于管理IP地址和DHCP(Dynamic Host Configuration Protocol)的工具或系统。IPAM旨在简化和集中管理IP地址分配、子网划分和DHCP配置等任务。本文将详细介绍IPAM的概…

新手快速学会使用DDL对数据库和表的操作

前言 SQL是一种操作关系型数据库的结构化查询语言。今天这篇文章将详细讲述数据定义语言DDL对数据库和表的相关操作。 文章目录 前言1. DDL-操作数据库1.1 查询1.2 创建数据库1.3 删除数据库1.4 使用数据库2.1 数据类型2.2 查询表2.3 创建表2.4 删除表2.5 修改表 3. 实战案例详…

统计学的假设检验/置信区间计算

假设检验的核心其实就是反证法。反证法是数学中的一个概念,就是你要证明一个结论是正确的,那么先假设这个结论是错误的,然后以这个结论是错误的为前提条件进行推理,推理出来的结果与假设条件矛盾,这个时候就说明这个假…

chatgpt赋能python:Python中符号的用法

Python中符号的用法 在Python编程中,符号是非常重要的一部分。通过合理使用符号,我们可以轻松地实现许多功能和操作。下面是Python中一些常用的符号的介绍和用法。 赋值符号 斜杠等于号()被用来赋值。例如,如果我们要…

接口和抽象类和实现类的区别

Jumping 是一个接口 有抽象方法 是一个抽象的内容 public class Cat implements Jumping{ 使用多态 方法实例化 Jumping j new Cat(); j.jumping } 接口的实现类 重写接口中所有的抽象方法抽象类 注意接口中没有 成员变量 默认全部都是 常量 用final 修饰可以通过 接口…

SpringBoot项目配置mongodb多数据源以及自定义类型转换

mongodb多数据源配置,需要修改mongodb默认的yml配置文件 修改项目中的application-mongodb-dev.yml文件 spring:data:mongodb: # 第一个数据源,或默认数据源one:uri: mongodb://username:passwordip:port/collectionName # 第二个数据源two:uri: m…