当前位置: 首页 > 知识库问答 >
问题:

如何从不同的子模块中导入一个子模块?[副本]

栾钟展
2023-03-14

我的项目有以下结构:

DSTC/
    st/
        __init__.py
        a.py
        g.py
        tb.py
    dstc.py

以下是a.py的部分内容:

import inspect
import queue
import threading
import functools
from . import a
"C:\Program Files\Python36\python.exe" C:/Users/user/PycharmProjects/DSTC/st/tb.py
Traceback (most recent call last):
  File "C:/Users/user/PycharmProjects/DSTC/st/tb.py", line 15, in <module>
    from . import a
ImportError: cannot import name 'a'

Process finished with exit code 1

共有1个答案

施彬郁
2023-03-14

你可以使用

import a

或相对

from .a import *

在本例中,应加载模块**a**

python -m a tb.py
#  main.py
from st import tb
# tb.py 
import a  # will not work
from .a import * # will work

因为这次您将“a”作为模块加载。

 类似资料:
  • 我有一个这样的目录: 我可以这样导入父模块: 那么,既然我已经有了父模块,那么获取子模块的最佳方法是什么?我已经尝试了,,等。 有什么建议吗? 谢谢

  • 我在Pycharm中有一个python项目,其中有一个嵌套的Git子模块。以下是文件夹结构: 中的导入结构如下: 但是,Pycharm没有意识到这一点,而是希望我拥有以下内容: 这是有问题的,因为我不想更改中的所有导入(这似乎不是一个好的实践,也不可扩展),而且中有破折号,这对于导入来说不是有效的Python语法(我无法重命名repo)。 我还需要一种从我的代码中导入的方法。像这样的东西: 但当然

  • 问题内容: 我的目录结构如下: 从导入模块。我尝试结合使用with ,但是使用该方法,我只能在using下直接导入所有子模块。我想让他们全都陷入困境。导入的所有子模块的最干净的方法是什么,以便可以从中访问? 编辑:对不起,我有点含糊。我想在运行时导入子模块,而不在中明确指定它们。我可以用来获取子模块名称(除非有人知道更好的方法),但是我不确定使用这些名称(或者返回的ImpImporters ?)导

  • 问题内容: 我想将子文件夹导入为模块。因此,每个子文件夹都包含一个。我的文件夹结构是这样的: 在我的主脚本中,我导入 在此工厂文件中,我包括以下子模块: 如果我调用我的foofactory会收到错误消息,则该python无法导入子模块foo1和foo2: 问题答案: 无需与您或此处混淆。 为了在包中正确使用绝对导入,您还应该包括“ root”包名,例如: 或者您可以使用相对导入:

  • 我有一个使用git子模块的项目。在我的python文件中,我想在子模块项目中使用另一个python文件中的函数。 为了工作,我必须将init.py文件添加到路径中的所有子文件夹中。我的文件夹树如下: 有没有办法让它在不接触mygitsubmodule的情况下工作? 谢谢

  • 问题内容: 已经使用了平面软件包,我没想到嵌套软件包会遇到这个问题。这是… init .py的内容 这两个和是空的。 内容 内容(3个版本) 版本1 这是导入事物的坏方法和不安全方法(批量导入所有内容),但是它可以工作。 版本2 一种逐项导入的更安全的方法,但是失败了,Python不希望这样:失败,并显示消息:“没有名为模块的模块”。但是…… ……说。所以这是一个模块,但不是一个模块/ -P 8-