<p>您应该在<code>modules/</code>目录中有一个<code>__init__.py</code>文件来告诉Python <code>modules</code>是一个<a href="https://docs.python.org/2/tutorial/modules.html#packages" rel="noreferrer">package</a>。它可以是空文件。</p>
<p>如果您愿意,可以将其放入<code>__init__.py</code>中,以简化导入包的模块:</p>
<pre><code>__all__ = ['hello', 'HelloWorld', 'moduletest']
</code></pre>
<p>来自<a href="https://docs.python.org/2/tutorial/modules.html#importing-from-a-package" rel="noreferrer">Importing * From a Package</a></p>
<blockquote>
<p>Now what happens when the user writes from <code>sound.effects import *</code>?
Ideally, one would hope that this somehow goes out to the filesystem,
finds which submodules are present in the package, and imports them
all. This could take a long time and importing sub-modules might have
unwanted side-effects that should only happen when the sub-module is
explicitly imported.</p>
<p>The only solution is for the package author to provide an explicit
index of the package. The import statement uses the following
convention: if a package’s <code>__init__.py</code> code defines a list named
<code>__all__</code>, it is taken to be the list of module names that should be imported when <code>from package import *</code> is encountered. It is up to the
package author to keep this list up-to-date when a new version of the
package is released. Package authors may also decide not to support
it, if they don’t see a use for importing <code>*</code> from their package.</p>
</blockquote>