擅长:python、mysql、java
<p>由于<code>app_manager.py</code>是<code>app_gui.py</code>之上的目录,我相信您的导入(如果您希望使用相对导入)应该是</p>
<pre><code>from ..app_manager import AppManager
</code></pre>
<p>编辑以解决注释中的错误:如果您尝试直接运行此文件,您将在注释中得到一个<code>ValueError</code>。相对导入在包内的模块之间工作。假设您使用我在上面写的导入,然后在<code>app</code>目录上有一个名为<code>stuff.py</code>的文件,其内容如下:</p>
^{pr2}$
<p>运行<code>stuff.py</code>将如下所示:</p>
<pre><code>$ python stuff.py
hello
</code></pre>
<p>换言之,直接用python解释器执行带有相对导入的文件将导致错误,因为它不打算以这种方式使用。相反,您的模型应该由模块本身之外的东西导入和执行。在</p>
<p>如果在<code>app</code>目录中有一个<code>__main__</code>文件,并且代码完全相同,那么也可以直接执行该模块。在</p>
<pre><code>$ cat app/__main__.py
import app.app_gui.app_gui
print('hello')
$ python -m app
hello
</code></pre>