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

自定义python文件import导入ModuleNotFoundError: No module named ‘***‘ 问题

自定义python文件import导入ModuleNotFoundError: No module named ‘***’ 问题

  • 错误代码:
import configparser
import os.path
import sys
from bin import swk_mysql_create, swk_redis_create

这里导入自定义python文件,其中swk_mysql_create.py文件的import内容是这样的

import swk_reuse

在执行文件时,报错:

Traceback (most recent call last):File "/main.py", line 10, in <module>from bin import swk_mysql_create, swk_redis_createFile "/bin/swk_mysql_create.py", line 4, in <module>import swk_reuse
ModuleNotFoundError: No module named 'swk_reuse'
  • 解决方法
import configparser
import os.path
import sys
# 提前设置引用路径
sys.path.append('./bin/')from bin import swk_mysql_create, swk_redis_create
  • 原理
  • 当在Python代码中执行导入操作时,Python解释器会尝试从一系列预定义的目录中查找对应的模块文件。

  • 报错 ModuleNotFoundError: No module named 'swk_reuse' 表示解释器在查找模块时未能找到名为 swk_reuse 的模块。

  • 这个问题通常是因为解释器无法定位到正确的模块文件。解决这个问题的原理涉及到Python解释器如何查找和加载模块的过程:

  1. 模块搜索路径(Module Search Path): Python解释器在导入模块时会按照一定的顺序搜索模块搜索路径中的目录。搜索路径包括:
  • 当前脚本所在的目录(如果是从脚本中导入的)
  • 内置模块的安装目录
  • 第三方模块的安装目录
  • 用户自定义的模块目录
  1. sys.path sys.path 是一个Python列表,包含模块搜索路径。通过将自定义的模块目录添加到 sys.path,从而告诉Python解释器在这些目录中查找模块文件。
  • 此次解决方法,就是通过将 sys.path.append('./bin/') 添加到代码中,将 ./bin/ 目录添加到模块搜索路径中。这样,当 swk_mysql_create.py 导入 swk_reuse 时,解释器会在 ./bin/ 目录中查找相应的模块文件。这样确保了解释器能够找到正确的模块文件,从而解决了 ModuleNotFoundError 错误。

  • 需要注意的是,添加搜索路径要写在导入方法的前面,否则在导入时还没有设置搜索路径,代码一样会报错。

http://www.lryc.cn/news/128738.html

相关文章:

  • Codeforces Round 893 (Div. 2)B题题解
  • HTTP响应状态码大全:从100到511,全面解析HTTP请求的各种情况
  • Vue-10.集成.env
  • 强训第33天
  • 【CTF-web】buuctf-[极客大挑战 2019]EasySQL 1(sql注入)
  • 脚本语言与编译语言的区别
  • 大型企业或者组织,组建专属的虚拟局域网,深入理解相关的配置和搭建使用、网络加速和网络优化,可夸地区夸国际使用,深入搞懂每项配置的作用和含义
  • 数据结构:二叉树的递归实现(C实现)
  • MinGW编译运行报错RTTI symbol not found for class ‘XXX‘
  • table表头颜色 element plus
  • 网络安全(自学)
  • FPGA芯片IO口上下拉电阻的使用
  • 掌握指针进阶:一篇带你玩转函数指针、函数指针数组及指向函数指针数组的指针!!
  • 在Docker上部署2台节点,利用Keeplived实现双节点VIP 高可用,不需要关闭Keeplived,实现vip来回切换。
  • leetcode 279. 完全平方数
  • 【从零学习python 】48.Python中的继承与多继承详解
  • 二、编写第一个 Spring MVC 程序(总结项目报 404 问题以及 Spring MVC 的执行流程)
  • okhttp源码简单流程分析
  • SpringBoot整合Shiro实现登录认证,鉴权授权
  • Airbnb开源数据可视化工具Visx
  • VR仿真实训系统编辑平台赋予老师更多自由和灵活性
  • 父类对象转成子类对象
  • Spring Boot中如何使用Flyway进行数据库迁移
  • web在线编辑器(vue版)
  • 【论文阅读】 Model Sparsity Can Simplify Machine Unlearning
  • Spring Clould 部署 - Docker
  • linux--链表动态创建
  • iBooker 布客技术评论 20230818
  • CK-A60180、CK-B1542、CK-L3095单向离合器
  • 单因素多变量方差分析