【Python】报错ModuleNotFoundError: No module named fileName解决办法

news2025/2/26 15:22:36

1.前言

        当我们导入一个模块时: import xxx ,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块。

        搜索路径存放在sys模块的path中。【即默认搜索路径可以通过sys.path打印查看】

2.sys.path.append()

         sys.path是一个列表 list ,它里面包含了已经添加到系统的环境变量路径。

当我们要添加自己的引用模块搜索目录时,可以通过列表 list 的 append()方法;

sys.path.append()

对于需要引用的模块和需要执行的脚本文件不在同一个目录时,可以按照如下形式来添加路径:

【例如:】

①导入的XX包在另一个项目文件中,在自己写的程序中需要用到XX包。

②所以我们在运行自己写的程序时,首先加载导入的XX包,加载的时候python解释器会去sys.path默认搜索路径去搜索。

③如果通过sys.path中的路径可以搜索到XX包,然后加载。

④如果无法通过sys.path中的路径搜索到XX包,即说明自己的程序中引用的XX包,与自己程序脚本所在目录不在同一个路径。(无法在自己的程序脚本中根据默认搜索路径查找到XX包)

⑤然后我们就需要将XX包的搜索路径添加到自己程序脚本的默认搜索路径中,重新运行自己的程序脚本,先搜索XX包在家载XX包。

import sys  
sys.path.append(’需要引用模块的地址')

# sys.path.append("..")   # 这代表添加当前路径的上一级目录

【注意】:这种方法是运行时修改,脚本运行后就会失效。

运行结果:

sys.path.append('..')括号里这两个点是什么意思?

这是目录的意思,即代表上一级目录。

通过这种方式,python程序会在上一级查找相应的其他python包或者文件。

sys.path.append('..\..')还有类似的sys.path.append('../..') 就是代表当前位置得上两级的目录地址。

改变当前python脚本的默认搜索路径的第二种方式

把路径添加到系统的环境变量,或把该路径的文件夹放进已经添加到系统环境变量的路径内。

环境变量的内容会自动添加到模块搜索路径中。

sys模块包含了与python解释器和它的环境有关的函数;可以通过dir(sys)来查看方法和成员属性。

下面的两个方法可以将模块路径加到当前模块扫描的路径里:

sys.path.append('你的模块的名称')

sys.path.insert(0,'模块的名称')

永久添加路径到sys.path中,方式有三。

如下:

1)将写好的py文件放到已经添加到系统环境变量的目录下;

2) 在 /usr/lib/python2.6/site-packages 下面新建一个.pth 文件(以pth作为后缀名);将模块的路径写进去,一行一个路径,如: vim pythonmodule.pth

/home/liu/shell/config
/home/liu/shell/base

3) 使用PYTHONPATH环境变量
export PYTHONPATH=$PYTHONPATH:/home/liu/shell/config

去期待陌生,去拥抱惊喜。

3.参考

python脚本中的sys.path.append("..")详解 - 习久性成 - 博客园 (cnblogs.com)

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

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

相关文章

如何在Ubuntu系统使用docker部署DbGate容器并发布至公网可访问

文章目录 1. 安装Docker2. 使用Docker拉取DbGate镜像3. 创建并启动DbGate容器4. 本地连接测试5. 公网远程访问本地DbGate容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 本文主要介绍如何在Linux Ubuntu系统中使用Docker部署DbGate数据库管理工…

vue实现从本地上传头像功能

上传头像&#xff1a; <template><div><el-card class"box-card"><div slot"header" class"clearfix"><span>更换头像</span></div><div><!-- 图片、用来展示用户选择的头像 --><img…

2024年国内最受欢迎的10大热门城市

如果你还没有计划好2024年的旅游行程&#xff0c;不妨考虑这些热门城市&#xff0c;去感受它们的魅力吧&#xff01;在时光流转的车轮下&#xff0c;中国城市风貌日新月异&#xff0c;各具特色的城市正以其独特的魅力吸引着国内外的目光。 近日&#xff0c;依据大数据及网络热度…

功能强大的开源数据中台系统 DataCap 2024.03.1 发布

推荐一套基于 SpringBoot 开发的简单、易用的开源权限管理平台&#xff0c;建议下载使用: https://github.com/devlive-community/authx 推荐一套为 Java 开发人员提供方便易用的 SDK 来与目前提供服务的的 Open AI 进行交互组件&#xff1a;https://github.com/devlive-commun…

【next】Extra attributes from the server: mpa-version,mpa-extension-id

layout下面的标签添加 suppressHydrationWarning{true}

头歌-机器学习 第12次实验 Adaboost算法

第1关&#xff1a;什么是集成学习 任务描述 本关任务&#xff1a;根据本节课所学知识完成本关所设置的选择题。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.什么是集成学习。 什么是集成学习 集成学习方法是一种常用的机器学习方法&#xff0c;分为b…

vue3新手笔记

setup&#xff08;&#xff09;{}函数&#xff0c;是启动页面后&#xff0c;自动执行的一个函数。所有数据&#xff08;常量、变量&#xff09;、函数等等&#xff0c;都要return 出去。 ref函数(可用于基本数据类型&#xff0c;也可以用于复杂数据类型)&#xff1a;让页面上的…

【QT入门】 Qt自定义控件与样式设计之QSlider用法及qss

往期回顾&#xff1a; 【QT入门】 Qt自定义控件与样式设计之QCheckBox qss实现按钮开关-CSDN博客 【QT入门】 Qt自定义控件与样式设计之QPushButton点击按钮弹出菜单-CSDN博客 【QT入门】Qt自定义控件与样式设计之QProgressBar用法及qss-CSDN博客 【QT入门】 Qt自定义控件与样式…

MPT - 原理及应用

前文回顾 Merkle原理及应用Merkle代码实现Patricia原理及应用Patricia代码实现 什么是MPT&#xff08;Merkle Patricia Tree&#xff09;树 MPT树是一种数据结构&#xff0c;用于在以太坊区块链中高效地存储和检索账户状态、交易历史和其他重要数据。MPT树的设计旨在结合Merk…

激光点云-无监督语义分割方法

深度学习和人工智能是点云分割的良好且强大的解决方案,但语义分割对于数据处理方式能否更加简单和快速?如今,我们仍然关注深度学习,但人工智能是以数据为中心的。生成这些数据是一个劳动密集型的解决方案,我们是否可以尝试采用简单的无监督语义分割来有效地“预标记”点云…

【noVNC】使用noVNC实现浏览器远程VNC(基于web的远程桌面)

一、操作的环境 windows 10系统乌班图 Ubuntu 22 二、noVNC 部署方式 原理&#xff1a;开启 Websockify 代理来做 WebSocket 和 TCP Socket 之间的转换 2.1 noVNC和VNC服务端同一台机器 使用方式&#xff0c;查看另一篇博文 &#xff1a;【noVNC】使用noVNC实现浏览器网页访…

基于8086方波信号发生器仿真设计

**单片机设计介绍&#xff0c;基于8086方波信号发生器仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 二、功能设计 文件夹内包含工程文件&#xff0c;可直接运行或者二次开发&#xff1b; 此设计可作为毕业设计和课程…

从“看见”工程活动和研发模式开始,提升团队工程交付能力

提升团队工程交付能力&#xff0c;从“看见”工程活动和研发模式开始 理想中的研发团队应当具有以下特征&#xff1a; 总是工作在最高优先级的事项上理想的研发团队能够识别并始终集中精力在当前最紧迫和最有价值的任务上。这需要团队具备出色的项目管理能力和决策能力&#x…

andorid 矢量图fillColor设置无效

问题&#xff1a;andorid 矢量图fillColor设置无效 解决&#xff1a;去掉如下 android:tint一行

考研数学|全程跟汤家凤,还是强化换张宇?

考研高数的复习策略因人而异&#xff0c;选择跟哪位老师的课程取决于个人的学习习惯、基础水平和目标院校的要求。 汤家凤老师的教学特点是注重基础知识的讲解和概念的理解&#xff0c;适合基础薄弱或者零基础的考生。他的课程通常从基础概念讲起&#xff0c;逐步深入&#xf…

手动实现简易版RPC(上)

手动实现简易版RPC(上) 前言 什么是RPC&#xff1f;它的原理是什么&#xff1f;它有什么特点&#xff1f;如果让你实现一个RPC框架&#xff0c;你会如何是实现&#xff1f;带着这些问题&#xff0c;开始今天的学习。 本文主要介绍RPC概述以及一些关于RPC的知识&#xff0c;为…

前端代码规范系列,今天聊聊代码注释

开始之前&#xff0c;介绍一下​最近很火的开源技术&#xff0c;低代码。 作为一种软件开发技术逐渐进入了人们的视角里&#xff0c;它利用自身独特的优势占领市场一角——让使用者可以通过可视化的方式&#xff0c;以更少的编码&#xff0c;更快速地构建和交付应用软件&#…

一文带你了解Material, Texture Mapping, Shading, Shader

作者&#xff1a;caven chen 在计算机图形学和三维开发过程中&#xff0c;有几个容易混淆的概念。今天我们来一举拿下。 又可以学习新的知识啦。冲鸭。。。。。。 基础概念 首先我们来介绍一些基础概念: 英文 中文 本质 释义 Material 材质 数据集 表现物体对光的交互…

勒索软件漏洞?在不支付赎金的情况下解密文件

概述 在上一篇文章中&#xff0c;笔者对BianLian勒索软件进行了研究剖析&#xff0c;并且尝试模拟构建了一款针对BianLian勒索软件的解密工具&#xff0c;研究分析过程中&#xff0c;笔者感觉构建勒索软件的解密工具还挺有成就感&#xff0c;因此&#xff0c;笔者准备再找一款…

Elasticsearch8.x 设置密码

文章目录 一、环境说明二、使用elasticsearch-reset-password工具修改1、elasticsearch-reset-password工具位置2、设置密码 一、环境说明 elasticsearch版本&#xff1a;8.13.0 系统版本&#xff1a;Ubuntu 18.04.6 二、使用elasticsearch-reset-password工具修改 1、elast…