Пидев и Джанго: Shell не находит определенные модули? - PullRequest
2 голосов
/ 03 мая 2010

Я разрабатываю проект Django с PyDev в Eclipse. Какое-то время PyDev Shell Django работал отлично. Теперь это не так:

>>> import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
C:\Python26\python.exe 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)]
>>> 
>>> from django.core import management;import mysite.settings as settings;management.setup_environ(settings)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named mysite.settings
>>> 

Сервер разработки работает нормально. Что я могу делать не так?

Модуль моделей также заметно отсутствует:

>>> import mysite.myapp.models
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named mysite.myapp.models

В обычной командной строке за пределами PyDev оболочка работает нормально.

Почему это могло происходить?

Ответы [ 3 ]

5 голосов
/ 04 мая 2010

Похоже на проблему с простым путем. Что на выходе это:

import sys; print sys.path

Я ничего не знаю о PyDev, но, возможно, где-то есть настройка для добавления путей к настройке PYTHONPATH. Если нет, вы можете сделать это прямо в оболочке:

sys.path.insert(0, '/path/to/directory/containing/mysite/')
3 голосов
/ 18 января 2013

У меня была похожая проблема с этим некоторое время назад, когда я переносил свой проект из Django 1.3 и имел файл settings.py в корне моего исходного кода, а затем перемещал его в приложение.

Например, случилось то, что у меня было следующее:

rootOfSource / - settings.py - myapp

и я изменил его на:

rootOfSource / - myapp - myapp / settings.py

и я также изменил файл настроек на следующий:

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

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

Однако, когда я отладил в os.eviron, я обнаружил, что DJANGO_SETTINGS_MODULE не соответствует ожиданиям, затем я изменил файл manage.py на следующий:

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

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
    os.environ.__setitem__("DJANGO_SETTINGS_MODULE", "myapp.settings")
    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

Который затем позволил мне бежать из PyDev.

Надеюсь, это поможет.

0 голосов
/ 28 октября 2017

Я исправил эту проблему, перейдя в свойства проекта -> PyDev Django и установив модуль настроек Django. enter image description here

...