2015-07-28 5 views
0

Я разрабатываю несколько приложений django в одном проекте eclipse, а также отдельную библиотеку, на которой некоторые приложения работают в другом проекте eclipse. Я ссылался на проект библиотеки из моего проекта django через Properties->Project References, что позволяет импортировать из одного проекта в другой. Этот импорт работает точно так, как ожидалось, когда тестируется в консоли python внутри eclipse.Manage.py не удается найти пакет из другого проекта eclipse

Теперь я пытаюсь запустить сервер разработки моего проекта django в Windows cmd -shell через manage.py runserver, но он не работает с сообщением о том, что он не может найти вышеупомянутый импорт. Я предполагаю, что это потому, что библиотека, которая находится в разработке, не «установлена» нигде, чтобы скрипт мог их найти.

Какое оптимальное решение для моей проблемы?

Идеи и соображения:

  • Могу ли я запустить manage.py runserver изнутри затмения? Может ли это решить проблему?
  • Я работаю над обоими проектами одновременно, поэтому все, что вводит значительные накладные расходы (например, упаковка и установка библиотеки после каждого редактирования), должно считаться последним.
  • Есть ли способ рассказать скрипту manage.py, где искать отсутствующие импортные данные?

ответ

0

Я нашел решение, которое работает для меня:

Добавление sys.path.append("relative\\path\\to\\library\\source\\folder") после os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoToolkit.settings") сделал трюк. Поскольку исходная папка моего проекта библиотеки теперь добавлена ​​к системному пути, пакеты и модули моей библиотеки теперь ищутся при запуске сервера разработки. Мой manage.py теперь выглядит следующим образом:

#!/usr/bin/env python 
import os 
import sys 

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoToolkit.settings") 
    sys.path.append("..\\LibraryProject\\src") 
    from django.core.management import execute_from_command_line 

    execute_from_command_line(sys.argv) 
Смежные вопросы