当前位置: 首页 > 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是个神奇的存在。为什么会出现这个情况我还没搞清楚,如果有明白的希望留言

相关文章:

  • uni-app 中开发问题汇总
  • 走进黑盒:SQL 是如何在数据库中执行的?
  • 大模型应用:开发移动端页面个人中心页面提示词
  • CVPR2022——立体匹配算法Fast-ACVNet复现
  • 不同数据场景下的聚类算法
  • MybatisPlus - Interceptor(拦截器)的功能点
  • 完全卸载VS Code--Windows版
  • 图文详解 | PhotoScape X Pro 4.2.5 安装步骤与功能初探
  • 003大模型-大模型API调用,function calling的作用以及本地调用
  • 枪弹库专用门
  • Linux挂载新硬盘保姆级教程
  • C++ `typeid` 运算符
  • Python页面纸张大小设置
  • JavaScript的call和apply
  • Qt中的智能指针
  • 【深度学习新浪潮】以图搜地点是如何实现的?(含大模型方案)
  • 哈尔滨云前沿服务器托管,服务器租用
  • 打板策略实战对比,khQuant回测横评第三弹【AI量化第29篇】
  • 题目 3313: 蓝桥杯2025年第十六届省赛真题-电池分组
  • 云效流水线Flow使用记录
  • 查看网站点击量/河南关键词优化搜索
  • 西双网站建设/培训机构招生7个方法
  • 重庆响应式网站建设公司/百度教育小程序
  • 做相册网站logo/十大营销策略
  • 给六人游做网站开发的/网站排名推广工具
  • 金融行业建设网站/网站推广软文