Django 外部库和应用程序名称冲突

Den*_*gin 5 python django namespaces

有一个 Django 应用程序“my_app”。现在添加了一个恰好具有相同名称的外部库,需要添加到 INSTALLED_APPS 中。

src
 |
 -- apps
      |
      --- **my_app**


external libraries
         |
          __ **my_app**
               |
                __some_path
                      |
                       __ new_module
Run Code Online (Sandbox Code Playgroud)

Django 走老路,吐了

Error: No module named my_app.some_path.new_module
Run Code Online (Sandbox Code Playgroud)

因为它正在寻找错误的文件夹。

INSTALLED_APPS = (
    ...
    apps.my_app
    my_app.some_path.new_module
    ...
)
Run Code Online (Sandbox Code Playgroud)

注意:INSTALLED_APPS 中应用程序的顺序没有区别。从 INSTALLED_APS 中删除 apps.my_app 也没有什么区别。

当我尝试输入时

import my_app
Run Code Online (Sandbox Code Playgroud)

pycharm 自动建议 apps.my_app

有没有办法在不重命名其中一个应用程序的情况下解决此问题?

aro*_*cks 3

好吧,为即将发布的 Django 1.7 版本做好准备,它将使用“应用程序注册表”以优雅的方式解决此类应用程序冲突。您可以为每个应用程序设置标签,以使用不同的名称来引用它们。