2014-02-19 3 views
1

Имейте приложение django 'my_app'. Теперь добавлена ​​внешняя библиотека, которая имеет одно имя и должна быть добавлена ​​в INSTALLED_APPS.Внешняя библиотека Django и конфликт имен приложения

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


external libraries 
     | 
      __ **my_app** 
       | 
       __some_path 
         | 
         __ new_module 

Джанго по старому пути и выплевывает

Error: No module named my_app.some_path.new_module 

, потому что он смотрит в ту папку.

INSTALLED_APPS = (
    ... 
    apps.my_app 
    my_app.some_path.new_module 
    ... 
) 

Примечание: порядок приложений в INSTALLED_APPS не имеет значения. Удаление apps.my_app из INSTALLED_APS также не имело значения.

Когда я пытаюсь ввести

import my_app 

PyCharm авто предлагает apps.my_app

Есть ли способ решить эту проблему без переименования одного из приложений?

ответ

0

Порядок приложений очень важен. Удостоверьтесь, что my_app загружает первую. В INSTALLED_APPS поставьте my_app до conflicting_app.

INSTALLED_APPS = ( 
    ... 
    "my_app", 
    "conflicting_app", 
    ... 
) 
+1

похоже не имеет значения. –

2

Ну, готовьтесь для предстоящего релиза Django 1.7, который решает такие конфликты приложений в элегантной манере, используя "app registry". Вы можете использовать set a label для каждого приложения, чтобы ссылаться на них с другим именем.

+0

очень с нетерпением ждем этой возможности. –

Смежные вопросы