Сегодня я был очень смущен.
Я пытаюсь использовать мои модели приложений django в своем python script.
вот мой подход
import os, sys
sys.path.append("/var/www/cloudloon/horizon")
os.environ["DJANGO_SETTINGS_MODULE"] = "openstack_dashboard.settings"
from django.contrib.auth.models import User
Я был в замешательстве, почему он дал мне
ImportError: Could not import settings 'openstack_dashboard.settings' (Is it on sys.path?): cannot import name auth
После проверки я создал файл с именем creds, который включает
export PYTHONPATH=$PYTHONPATH:/var/www/cloudloon/horizon/;
export DJANGO_SETTINGS_MODULE=openstack_dashboard.settings; django-admin.py shell;
и из окна терминала, где находится файл creds, я делаю
source creds
и из этой оболочки django-admin.py я могу импортировать любую из моих моделей приложений django без каких-либо ошибок.
Почему это не работает в моем python script?
Я закончил с Django. Мне нужно создать python-daemon script, который будет обращаться к моим моделям приложений django.
Я работаю в Ubuntu 12.04, у которого есть django 1.5
Как я ищем решения, я сделал это:
import os, sys
sys.path.append("/var/www/cloudloon/horizon")
sys.path.append("/var/www/cloudloon/horizon/openstack_dashboard")
# os.environ["DJANGO_SETTINGS_MODULE"] = "settings"
os.environ.setdefault("DJANGO_SETTINGS_MODULE",
"openstack_dashboard.settings")
print os.environ["DJANGO_SETTINGS_MODULE"]
for s in sys.path:
print s
from django.contrib.auth.models import User
выводит вывод: http://paste.openstack.org/show/48787/
как вы можете видеть, каталог, в котором находится settings.py, присутствует на моем sys.path, однако он все еще не смог импортировать openstack_dashboard.settings.
Спасибо всем.