Я использую 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
Я так понимаю, что-то в путях потерялось. Как починить?
Источник: