当前位置: 首页 > news >正文

导入自定义模块的过程中出现ModuleNotFoundError错误

python代码在导入自定义模块的过程中有时会出现ModuleNotFoundError错误

出现这种情况一般出现在项目运行目录与自定义模块不在同级的情况下

|_programs
|	|_foo.py
|_utils|——__init__.py|_util.py

其中utils为自定义模块,在foo.py中引入utils中的util文件有可能会报错ModuleNotFoundError错误

问题原因

因为在导包过程中,python解释器会搜索sys.path中的所有路径,而sys.path默认是指向当前执行的文件目录。

解决方法

将项目路径添加到需要引入自定义模块的文件中

import os
import sys
sys.path.insert[0, os.path.abspath(os.path.dirname(os.path.dirname(__file__)))]

os.path.dirname(__file__)是当前脚本的路径,通过os.path.dirname获取当前脚本的运行目录,再次调用获取项目根目录,并通过os.path.abspath获取到绝对路径后添加到sys.path

http://www.dtcms.com/a/357497.html

相关文章:

  • “白月光”焦点何晟铭现身宁夏中宁,助力非遗与三农发展
  • 37 HTB Remote 机器 - 容易
  • RV1126的OSD模块讲解
  • ArcPy 断点续跑脚本:深度性能优化指南
  • 币安创始人赵长鹏:香港需要更广泛的加密货币产品来与美国和阿联酋竞争
  • Origin绘制四元相图
  • 3-5〔OSCP ◈ 研记〕❘ WEB应用攻击▸WEB应用枚举A
  • 数据存储与SQLite数据库
  • 3 反向传播
  • C++ 线程安全初始化机制详解与实践
  • Android 打包适配15 版本(api 35)问题处理
  • 数字人 + 矩阵聚合系统源码搭建与定制化开发
  • 内网部署数据本地化,不限时的视频会议软件-BeeWorks Meet
  • 数据结构:归并排序 (Iterative Merge Sort)
  • JavaScript 基础核心知识点总结:从使用方式到核心语法
  • 不止于价格,DigitalOcean、AWS和Linode该选谁?
  • 蘑兔音乐:音乐创作板块的槿汐姑姑
  • 抗干扰、高冗余、快部署:KAXA工业无线方案赋能注塑车间稳定联网
  • OpenCV的轮廓检测
  • 手写MyBatis第41弹:MyBatis动态代理黑魔法:MapperProxy如何智能处理增删改的返回值?
  • 【完整源码+数据集+部署教程】胚胎发育阶段检测系统源码和数据集:改进yolo11-SCConv
  • 如何从 iCloud 存储中删除消息的 4 种方法
  • ubuntu24.04 QT中配置opencv4.12
  • 引力场能量为负,物质能量为正,这是在存在物质的空间中说的,如果是空无一物的空间呢,引力场能量还是负吗(或者说引力场还存在吗)
  • 2025年09月计算机二级Java选择题每日一练——第十一期
  • Vue3 kkfileview 的使用
  • Hal aidl 模板
  • Django开发规范:构建可维护的AWS资源管理应用
  • 第八章 惊喜01 测试筹备会
  • 【Flask】测试平台开发,产品管理实现编辑功能-第六篇