python - 为什么相对导入在我的项目中不起作用?
问题描述
我正在开发一个由多个包和模块组成的 python 项目。因此我需要从不同的包中导入模块。但是,在导入这些模块时,我遇到了导入错误。文件夹结构如下: 文件夹结构图
在模块 Stage0.py 中,我使用相对导入:“from ..data.Datapipe import DataFactory”来导入 DataFactory 类。但是,当我执行脚本时,我收到一条错误消息:“ModuleNotFoundError: No module named 'MT'”
我会很感激任何反馈,因为我变得绝望
解决方案
我不是 100% 确定我已经正确理解了这一点,但是当你运行 Stage0.py 时,它会将根 python 路径设置为 app 目录,问题是 python 使用相对导入只允许要在该根目录中查找文件,这个网站说实话解释得更好一些
请注意,对于相对导入,点 . 只能上升到(但不包括)包含从命令行运行的脚本的目录
无论如何,要修复它,您可以__main__.py
在调用 Stage0.py 脚本的 mt 文件夹中创建一个文件,这会将 mt 文件夹设置为项目的根目录,从而可以访问其他目录。
推荐阅读
- xpath - Xpath 从下一页到 Stack Overflow 中的 scrapy
- python - 删除每个字符串后出现的空行
- graphviz - 如何将此点程序中的节点调整为 2 x 3 表?
- java - 使用 Google pub/sub 更新单例 HashMap
- android - facebook graph api 使应用程序自动抓取 url android
- amazon-web-services - AWS SAM 模板 - 本地测试
- safari - 如何在 Safari 12.0.1 中获取 indexedDB 存储配额?
- python - 烧瓶设置饼干
- javascript - 读取源 html 以进行匹配然后使用 google 搜索的小书签
- c# - 使用 Visual Studio 2017 调试简单的 ASP.NET Core 2.1.5 模板