How to import one submodule from different submodule?
本问题已经有最佳答案,请猛点这里访问。
我的项目具有以下结构:
1 2 3 4 5 6 7 | DSTC/ st/ __init__.py a.py g.py tb.py dstc.py |
这是
1 2 3 | import inspect import queue import threading |
这是
1 2 | import functools from . import a |
直接运行时,
1 2 3 4 5 6 7 | "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 | import a |
或相对
1 | from .a import * |
在这种情况下,应加载模块
1 | python -m a tb.py |
会为你工作的。
import * is discouraged, import just as you need
如果您的DSTC中有一个main.py,如下所示:
1 2 | # main.py from st import tb |
你只运行main.py相对方法就可以了。
1 2 3 | # tb.py import a # will not work from .a import * # will work |
因为这次您将"a"作为模块加载。
使用
正如其他人所说,简单地说,cx1〔6〕将起作用。不管
这同样适用于其他人提到的
您只需要导入模块
1 | import a |