【问题标题】:How to import nested modules inside a folder in Python如何在 Python 中的文件夹中导入嵌套模块
【发布时间】:2020-07-05 23:09:09
【问题描述】:

我遇到了一个与我在这里看到的其他帖子类似但不同的问题:我正在尝试从嵌套模块导入一个模块,但即使 python linter 可以很好地提取所有内容,我也不能由于导入错误执行文件,找不到模块。

ParentFolder /
|__ContainerFolder
   |__ __init__.py
   |__ Camera/
       |__ __init__.py
       |__ CameraService.py
       |__ Data.py
   |__ Settings /
       |__ __init__.py
       |__ SettingService.py
       |__ Handler /
           |__ __init__.py
           |__ Handle.py
       |__ Models /
           |__ __init__.py
           |__  Setting.py

我想要的是在Handle.py 中导入Data.py

我试过了:

from ContainerFolder.Camera.Data import DataClass

linter 说没问题,VS Code 中的自动填充功能让我提前输入,但是,在执行时我得到了 ContainerFolder 模块的ModuleNotFoundError我在所有目录中都有一个__init__.py,所以我缺少什么来制作一个要从中导入的模块?

编辑

所以CameraService.pySettingService.py 都是 Tornado API,因为它们都作为 main 执行,如何在两者之间共享模块?即Data.py 与Settings 目录下的模块或Setting.py 在Camera 目录下的模块中?

【问题讨论】:

  • 您在Camera 级别的__init__.py 文件是否真的命名为__inti__.py
  • 既然你使用的是VS代码,那么也请使用这行代码'os.getcwd()'检查你是否在正确的目录中。您需要使用“import os”导入“os”模块。
  • 你的执行脚本是哪一个?从父目录路径运行执行脚本
  • 包含from ContainerFolder.Camera.Data import DataClass 的文件在哪里?
  • 设置和相机中有一个可执行文件。 Settings 中的那个需要拉入 Data,py 对象。

标签: python python-3.x import module package


【解决方案1】:

【讨论】:

  • 这不是与问题相关的解决方案
猜你喜欢
  • 1970-01-01
  • 2022-10-16
  • 2016-05-18
  • 1970-01-01
  • 2023-02-14
  • 2020-01-06
  • 2023-03-20
  • 1970-01-01
  • 2023-03-06
相关资源
最近更新 更多