繁体   English   中英

在Django中通过__init__.py从子模块导入变量

[英]Import variable from sub module through __init__.py in django

我正在经历一个无法从__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文件访问我的变量? 等待您的宝贵回应。 谢谢

您的示例应该可以工作。

这对我有效(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的文件在哪里?

在将单个模块重构为具有多个文件的软件包之前,我一直使用它,同时保留了替换的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM