问题
在脚本 article.py 中引入当前目录下的 __init__.py 的内容报错 ImportError: cannot import name 'fake'
路径
test/
__init__.py
article.py
文件 __init__.py 中
# -*- coding:utf-8 -*-
def fake():
print('A')
文件 article.py 中
# -*- coding:utf-8 -*-
from . import fake
print(fake)
执行 python article.py
报错提示:
Traceback (most recent call last):
File "article.py", line 2, in <module>
from . import fake
ImportError: cannot import name 'fake'
如何在 article.py 中引入 __init__.py 中的内容
临时的解决方式就是
from __init__ import fake
,但这种写法实在是太诡异了,这种方式就把__init__.py
视为普通的 python 文件而已。 然而,__init__.py
给包使用的,一个特殊文件的存在,而例子的程序入口又视为要导入的模块,实在是难受,就像吃饭时吃到了沙子。包中的模块部分要引入
__init__
的变量的正确姿势可以参照标准库的处理方式:希望对你有帮助。