Noc*_*wer 6 python reference exception python-import python-3.x
我的项目具有以下结构:
DSTC/
st/
__init__.py
a.py
g.py
tb.py
dstc.py
Run Code Online (Sandbox Code Playgroud)
这是a.py部分:
import inspect
import queue
import threading
Run Code Online (Sandbox Code Playgroud)
这是tb.py部分:
import functools
from . import a
Run Code Online (Sandbox Code Playgroud)
直接运行时,a.py不会产生任何错误,并且很容易验证没有SyntaxErrors。但是,运行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
Run Code Online (Sandbox Code Playgroud)
我应该如何重写afrom的导入,tb以便tb可以直接运行而不会导致错误?
你可以使用
import a
Run Code Online (Sandbox Code Playgroud)
或亲戚
from .a import *
Run Code Online (Sandbox Code Playgroud)
在这种情况下**a**应该加载模块
python -m a tb.py
Run Code Online (Sandbox Code Playgroud)
将为你工作。
不鼓励 import *,根据需要导入
如果您的 DSTC 中有一个 main.py,如下所示:
# main.py
from st import tb
Run Code Online (Sandbox Code Playgroud)
并且您运行 main.py 只有相对方法才适合您
# tb.py
import a # will not work
from .a import * # will work
Run Code Online (Sandbox Code Playgroud)
因为这次您将“a”作为模块加载。
| 归档时间: |
|
| 查看次数: |
1441 次 |
| 最近记录: |