python 导入路径中的应用名称

app name in python import path

如何在导入路径中使用 "relative static" 路径

例如,如果我有一个名为 asdf 的应用程序,具有以下目录

asdf/
 +- asdf/
 |   +- main.py
 |   +- config.py
 +- tests/
 etc.

目前我有 main.py...

from config import Config

我希望能够使用...

from asdf.config import Config

相对而言,由于项目仍处于起步阶段,因此模块正在移动。 (没有双关语意)

asdf/
 +- asdf/
 |   +- asdf/
 |       config.py
 |   +- main.py
 +- tests/
 etc.

如果你有这个目录结构,那么你可以使用这个 from asdf.config import Config

在 main.py 导入 config.py 的 Config 方法

您可以轻松找到解决此问题的方法。但是存在与其父模块同名的 modules/folders 总是会导致问题,尤其是当父模块和子模块都在 python 路径中时。从django1.6开始,django对项目文件夹和内部文件夹的命名也是类似的,这导致了很多问题,尤其是在测试中。

因此,作为一种规范,尽量避免命名模块与父模块相同。

我找到了答案(或者可能只是一种解决方法)。

如果我 "compile" 使用 setuptools 它将工作。