python2.7 module dir无法识别子模块

问题描述

我有一个像这样设置的python模块目录:

versions/__init__.py
versions/v1_0.py
versions/v2_0.py

__init__.py为空,但是每个v*.py文件都定义了一些功能。然后,我尝试使用from versions import *导入所有子模块,但是当我使用dir()打印出所有已加载的模块时,它们未列出,并且我无法使用任何子模块功能,例如{{1} }

我是否错误地设置了v1_0.update()模块?

这是一个最小的可复制示例:

下面是versionsfind命令的结果,它们显示文件结构以及每个python文件文件内容

more
$ find .
.
./versions
./versions/__init__.py
./versions/__init__.pyc
./versions/v1_0.pyc
./versions/v1_0.py

使用此设置以及我在$ more versions/*.py :::::::::::::: versions/__init__.py :::::::::::::: :::::::::::::: versions/v1_0.py :::::::::::::: def update(): pass 处的密码,我执行了以下操作:

.

解决方法

在python文档here中,我发现如果未定义__all__,则from module import *将仅初始化module,然后导入在{{1}中显式定义的任何名称}。因此,在我的情况下,由于module未明确定义versions/__init__.py,因此不会导入。