使用Django模型今天我感到很困惑。外部python腳本
我試圖用我的Django應用程序模型在我的Python腳本。
這裏是我的方法
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 AA文件,其中包括
export PYTHONPATH=$PYTHONPATH:/var/www/cloudloon/horizon/;
export DJANGO_SETTINGS_MODULE=openstack_dashboard.settings; django-admin.py shell;
,並從終端窗口信用檔案所在地,我做
source creds
,並從django-admin.py殼,我可以導入我的任何Django應用程序模型中沒有任何錯誤。
爲什麼不能在我的python腳本工作?
我與Django的做,我需要做的是建立一個Python守護程序腳本,將訪問我的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。
謝謝大家。
管理命令似乎沒有什麼,我想創建一個好主意。我需要創建python-daemon腳本。基本上,要運行python-daemon腳本,我需要運行「python myscript.py run」。 Python管理命令不適合它。 –
使用上面的代碼,它給了我AttributeError的:「海峽」對象有沒有屬性「__file__」 –
@DjangoBot對不起,該setup_environ需要一個模塊對象,而不是字符串。我已更正了代碼段。 –