importerror no module named django core

Я использую uwsgi для моего проекта Django (version = 1.4), но есть ошибка, если я запускаю

но я мог бы импортировать django.core.wsgi следующим образом:

Если вы используете virtualenv, попробуйте добавить home в django.ini:

Проверить его через веб-браузер:

Ошибка ImportError: No module named django.core.wsgi обычно возникает, когда uwsgi пытается прочитать файл wsgi.py и подходит к строке:

Он не может найти эти модули, потому что Django не установлен, или если он установлен, он не находится в PYTHONPATH.

Если ваш проект находится в виртуальном пространстве, а Django установлен только в этом виртуальном пространстве, то путь к модулям Django не находится в PYTHONPATH, и, таким образом, Python не может его найти.

Если вам интересно, вы можете вставить следующий код в файл wsgi.py и посмотреть PYTHONPATH:

Если вы запустите локальную версию uwsgi, установленную в virtualenv, то путь будет установлен правильно, но если вы запустите глобальную версию uwsgi, то обычно не будет установлен PYTHONPATH правильно.

Вы можете указать uWSGI путь к virtualenv, и он будет определять правильный PYTHONPATH. Просто используйте аргумент командной строки —virtualenv , например:

(Следующие аргументы точно так же, как —virtualenv: —venv, —home, -H)

Удивительно, что установка $VIRTUAL_ENV не влияет на PYTHONPATH

Как ни странно, если вы не используете аргумент —virtualenv, переменная среды $VIRTUAL_ENV будет установлена ​​правильно. Проверьте это, вставив в wsgi.py:

Но PYTHONPATH установлен неправильно и не содержит ничего из virtualenv.

Когда запускажю python3 manage.py makemigrations , выдает в конце:

В файле _django.py находяться настройки проекта. Подскажите пожалуйста почему его не видно из файла __init__.py , почему не импортирует, может что то не дописал. PyCharm не ругается, он видит норм. Может у кого то было такое, подскажите. Заранее спасибо.

1 Ответы

Чтобы джанго импортировал модуль правильно, нужно явно указать ему путь от текущего модуля. В вашем случае это from [name_project].settings._django import * , как указал в комментарии @andreymal. Для импорта модулей есть два исключения: если импортируемая библиотека находится в той же директории, что и скрипт, в который вы её загружаете, либо если она находится в стандартном пути импорта модулей (например, в виртуальном окруженииLibsite-packages), то путь можно не указывать. В ссылке, которую вы привели, это описывается в разделе «Куда поместить модуль?»:

После обновления с 10.6.8 до Mountain Lion 10.8, при попытке запустить сервер, вот такая ошибка

python manage.py runserver
Traceback (most recent call last):
File «manage.py», line 8, in from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

а при
>>> import djnago

Traceback (most recent call last):
File «», line 1, in ImportError: No module named djnago

Я так понимаю, что-то в путях потерялось. Как починить?

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий