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

Simplans

我正在经历一个无法从中导入变量的问题__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的文件在哪里?

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

模块导入和__init__.py在Python中

如何从子类中调用基类的__init__方法?

模块名称在变量中时导入模块

从包的__init__.py中屏蔽python子模块

如何在Python中单独导入子模块?

在子模块内部使用导入模块中的组件

无法识别Angular 2子模块中的材料导入

如何在Python中从C#dll导入子模块

从子文件夹导入Django模块

为什么子模块的代码尝试直接或通过相对导入来导入同级子模块?

从__init__中的Python子模块导入方法,但不是子模块本身

Python __init__文件无法导入模块

在python 3.7中创建包和导入子模块

Python:从子模块中删除主变量

使用__init__.py导入Python子模块

python模块导入难题(子模块中的模块)

在Python 2.7中,是否需要显式导入子模块?

如果子模块可能具有公共父目录,如何从子模块中删除.git文件?

在python中处理子模块上的导入

__init__方法中的变量范围?

在 Flask 中从 __init__ 导入

我无法从 Flask 中的 __init__ 导入?

如何将子模块中的类/函数相互导入?

在 VSCode 中自动导入 Typescript 子模块而不是父模块

Python - __init__ 子模块使用父包

从 __init__.py 中的子模块导入函数而不暴露子模块

如果从子模块导入 store 模块,则 nullinjectorerror no provider for store

是否可以在 JavaScript 中从子类导入父模块?

为什么即使不显式导入子模块名称也可以在 __init__.py 中访问它们?