python版本为2.7
目录结构
$ ls -R
.:
t.py util/
./util:
__init__.py __init__.pyc db.py db.pyc
内容
util/db.py
# coding=utf-8
var=100
def show():
print var
t.py
# coding=utf-8
from .util.db import var # util包前面加点
print var
if __name__=='__main__':
print var
运行报错
$ python t.py
Traceback (most recent call last):
File "t.py", line 3, in <module>
from .util.db import var
ValueError: Attempted relative import in non-package
提示不能在non-package下导入。
在当前目录下新建__init__.py
后依然是相同错误。
但是将util前面的点号去掉之后可以正常输出,为什么呢?
谢谢
상대 가져오기는 동일한 패키지 내에서만 사용할 수 있으며, 패키지 내 파일은 독립적으로 실행할 수 없습니다
t.py가 메인 스크립트로 실행됩니다. from.메소드가 있으면 오류가 발생합니다. (패키지의 모듈만 이 메소드를 사용합니다.)
로 변경해야 합니다._init_를 추가해도 계속 실행됩니다. 직접적으로 방법은 변경되지 않았습니다. python -m xxx.t