我有一个相对较小的python程序,设置如下
Root
--Network
--DTO
Lots of py files which contain classes.
Other py files in the project
在网络和DTO文件夹中都有一个空的__init__.py
。
当我执行from Network import DTO
,import Network
,Import Network.DTO
时,根本无法使用该模块。调试器说它完全是空的。 root包含我实际执行的py文件。
网络和DTO文件夹中的__init__.py
文件都编译为pyc
,而所有实际的python文件都不是。
有谁知道我做错了什么?我正在使用python 2.7
答案 0 :(得分:1)
为此,您需要导入__init__.py
中的子模块。如果您有很多子模块,那么为每个子模块添加导入变得更加困难。对于许多子模块(通常),请使用__all__
。
以下是Root/Network/DTO/__init__.py
的示例:
__all__ = [
'sample_module',
...
]
for module in __all__:
__import__('DTO.%s' % module)
现在你可以做from Network.DTO import sample_module
。同样的想法也适用于你的其他模块。