我有一个类似下面的模块,我想在myfile.py中包含__init__.py
的函数
/mymodule
/__init__.py
/myfile.py
init是
import mymodule.myfile
myInt = 5
def myFunction():
print "hey"
和myfile文件
from mymodule import myFunction
from mymodule import myInt
...
因此myInt包含有效但不包含myFunction。你知道为什么吗?
由于
修改
错误讯息为ImportError: cannot import name myFunction
答案 0 :(得分:0)
你有一个循环导入:
myInt
和myFunction
尚未在import mymodule.myfile
运行时分配。mymodule.myfile
然后尝试从mymodule
导入尚未分配的名称。您可以选择将myInt
和myFunction
移至单独的共享模块:
mymodule/
__init__.py
myfile.py
utilities.py
其中__init__.py
从mymodule.myfile
和mymodule.utilities
导入,myfile.py
从mymodule.utilities
导入。
或者您可以在myfile.py
中导入只是模块,并推迟引用myInt
和myFunction
名称,直到稍后(例如,在函数调用中) :
import mymodule
def somefunction():
mymodule.myFunction(mymodule.myInt)
当调用somefunction()
时,所有导入都已完成,mymodule.myFunction
和mymodule.myInt
已分配给。{/ p>