我正在经历一个我无法从__init__.py
导入变量的问题。我谷歌我的问题,但我找不到任何我能理解的答案。
我的模块结构是:
my_module/
__init__.py
sub_module/
__init__.py
module_file.py
我的文件中的内容是:
# my_module/__init__.py
from sub_module.module_file import show_variable
# sub_module/module_file.py
show_variable = "string needs to display"
但是当我尝试从 sub_module
访问变量时from my_module import show_variable
通过错误
ImportError: cannot import name show_variable
有没有办法通过__init__.py
文件访问我的变量?
等待你的宝贵回应。谢谢
答案 0 :(得分:0)
你的例子应该有用。
这对我有用(2.7.6):
# my_module/__init__.py
from sub_module.module_file import show_variable
# my_module/sub_module/__init__.py (empty)
# my_module/sub_module/module_file.py
show_variable = 'string needs to display'
# main.py
from my_module import show_variable
print show_variable
来自my_module的父目录:
>>> from my_module import show_variable
>>> print show_variable
string needs to display
您也可以尝试使用此变体:
# my_module/__init__.py
from sub_module import show_variable
# my_module/sub_module/__init__.py
from .module_file import show_variable
也许是关于你如何在Django下设置你的包。您的文件在哪里加载my_module相对于my_module包?
我以前用过这个来将单个模块重构为一个包含多个文件的包,同时保持一个替代品。