今天我很困惑。
我试图在我的 python 脚本中使用我的 django 应用程序模型。
这是我的方法
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 shell,我可以导入我的任何 django 应用程序模型而不会出现任何错误。
为什么它在我的 python 脚本中不起作用?
我已经完成了 Django,我需要做的是创建一个 python-daemon 脚本来访问我的 django 应用程序模型。
我正在使用具有 django 1.5 的 Ubuntu 12.04
当我寻找解决方案时,我这样做了:
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。
感谢大家。