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

python-自定义导包问题ModuleNotFoundError: No module named

我自己写了一个包,包下又写了一个包,具体来说长这样:

C:\Users\Administrator\Desktop\WebPageDecompressionEnvoy
│
├── WebPageDecompressionEnvoy
│   ├── __init__.py
│   ├── Main_window.pyw
│   ├── WebPageDecompressionEnvoy.py
│   ├── MhtToHtml.py
│   ├── ResourcesManager
│       ├── __init__.py
│       ├── ResourcesManager.py
│   ├── Compress
│       ├── __init__.py
│       ├── Compress.py

我在ResourcesManager下导包Compress,使用如下语句

from WebPageDecompressionEnvoy.Compress.Compress import Compress

随后报错

ModuleNotFoundError: No module named 'WebPageDecompressionEnvoy.Compress'; 'WebPageDecompressionEnvoy' is not a package

询问ai之后,给了我几个方案

1.改成相对路径

from ..Compress.Compress import Compress

但是会很快乐地出现以下错误,并且找不到解决方案

ImportError: attempted relative import beyond top-level package

2.检查pycharmedit configxxx下的work path

3.确保每个包下都有一个空的init文件以保证都会被识别为包

是没有问题的,每个下都有

检查了,但是无误

其他方案都没有可行性。于是把我搞得很郁闷

查看了几个导包的帖子 左看右看感觉自己还是没有问题后,换了个ai,给出了如下答复引起了我的警觉

错误的原因是存在一个名为WebPageDecompressionEnvoy.py的文件,导致Python将其视为模块而不是包,从而无法正确导入子模块。

我的根目录就是WebPageDecompressionEnvoy,随后下面有一个同名的py。

最开始我没有打算注意他,毕竟我的compress和resource manager都是同名的。

尝试了一番后,发现代码正常运行。

不得不说py是个神奇的存在。为什么会出现这个情况我还没搞清楚,如果有明白的希望留言

http://www.xdnf.cn/news/676945.html

相关文章:

  • Linux 文件管理相关知识与命令
  • Linux升级内核回退到旧内核启动
  • Linux 进阶命令篇
  • 广东省省考备考(第二十二天5.27)—言语(第九节课)
  • Python正则表达式:30秒精通文本处理
  • 【判断含有相同数字rfind】2022-1-28
  • 高频面试--redis
  • [yolov11改进系列]基于yolov11引入分布移位卷积DSConv的python源码+训练源码
  • AI智能体策略FunctionCalling和ReAct有什么区别?
  • 多卡训练的开源大模型,开箱即用
  • Jenkins实践(8):服务器A通过SSH调用服务器B执行Python自动化脚本
  • WSL连接网络
  • 新太空原子钟任务为全球标准化测高系统铺平道路
  • 编译原理——语法制导的语义计算
  • 欢乐熊大话蓝牙知识11:如何打造一个低功耗蓝牙温湿度传感器?
  • getline()跳过输入
  • 01背包问题
  • 【Elasticsearch】_update api用于更新单文档,更新多个文档使用_update_by_query
  • 软件更新 | TSMaster 202504 版本已上线!三大功能让车载测试更智能
  • 基于Python技术的面部考勤微信小程序的设计与实现
  • 2025年上半年第1批信息系统项目管理师论文真题解析与范文
  • 【力扣】面试题 01.04. 回文排列
  • RS485 接口,Modbus协议模拟量输出模块的使用步骤
  • git的使用
  • python函数的高级1——深拷贝+yeild
  • SQL思路解析:窗口函数该如何使用?
  • 【Java Web】5.Mybatis
  • ZU15EG 四核被禁用掉了2个核
  • 芯片跑post sim,在waveform中一般要check哪些点?
  • 代码随想录算法训练营 Day56 图论Ⅶ 最小生成树算法 Prim Kruskal