如何从不同的子模块导入一个子模块?

夜空中塔

我的项目具有以下结构:

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

以下是a.py部分:

import inspect
import queue
import threading

以下是tb.py部分:

import functools
from . import a

直接运行时,a.py不会产生任何错误,并且很容易验证是否没有SyntaxError但是,运行tb.py会导致以下错误:

"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

我应该如何重写afrom的导入,tb以便tb可以直接运行而不会引起错误?

塞尔吉克

您可以使用

import a

或相对

from .a import *

在这种情况下,**a**应该加载模块

python -m a tb.py

将为您工作。

不建议导入*,根据需要导入

如果您在DSTC中有一个main.py,如下所示:

#  main.py
from st import tb

并且您运行main.py,只有相对的方法对您有效

# tb.py 
import a  # will not work
from .a import * # will work

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Maven项目中将spring-context从一个子模块导入到另一个子模块?

如何更新一个子模块git?

如何从另一个子模块访问一个子模块的布局?

Angular:将子模块导入另一个子模块将覆盖后者的路由

如何从不同的分支带来子模块?

当两个子模块都在同一主模块中时,从另一个子模块访问该子模块

Maven:如何管理从一个子模块到另一个子模块的依赖关系

从另一个导入子模块

需要一个子目录而不是一个子模块

运行另一个不同模块时,模块子模块的ImportError

如何提取一个新的子模块

如何添加另一个 RSU 子模块?

如何导入 webpack 子模块?

如何以角度将组件从一个模块导出和导入到其子模块

如何确定哪个模块是git中另一个模块的子模块?

如何导入模块隐藏子模块或实例?

GitHub显示一个子模块而不是一个子文件夹

为什么“ git submodule update”会跳过一个子模块?

Git认为某些复制的代码是一个子模块

添加文件夹将创建一个子模块

交叉引用链接到另一个子模块中的函数/类

将多个子模块折叠为一个Cython扩展

用子模块创建一个模块

导入子模块的子模块上的ModuleNotFoundError

在另一个模块中声明一个子模块/功能,该模块可由其他模块访问,但用户不可访问

Python子模块导入

Python子模块导入

无法从模块导入子模块

在另一个应用程序无法获取子模块导入正确