设置 django 的 django-admin,py 的问题
Posted
技术标签:
【中文标题】设置 django 的 django-admin,py 的问题【英文标题】:problems setting up django's django-admin,py 【发布时间】:2015-11-03 19:37:20 【问题描述】:我正在尝试使用django-admin.py loaddata
在开发服务器上播种数据库。我正在使用django 1.7.1
。将文件符号链接到我的项目后,当我尝试运行命令时出现此错误:
django.core.exceptions.ImproperlyConfigured: Requested setting USE_I18N, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
这让我想到了this 的问题。所以我尝试了export DJANGO_SETTINGS_MODULE=inventory_manage.settings
的推荐解决方案。然而,当我再次尝试运行loaddata
命令时,我遇到了这个ImportError
:
ImportError: Could not import settings 'inventory_manager.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named inventory_manager.settings
进一步research 导致检查我的网站是否在我的 virtualenv 的sys.path
上。它是:
/Users/Aaron/Development/inventory-manager <--This is it
/Users/Aaron/.virtualenvs/inventorymgr/lib/python27.zip
/Users/Aaron/.virtualenvs/inventorymgr/lib/python2.7
/Users/Aaron/.virtualenvs/inventorymgr/lib/python2.7/plat-darwin
/Users/Aaron/.virtualenvs/inventorymgr/lib/python2.7/plat-mac
/Users/Aaron/.virtualenvs/inventorymgr/lib/python2.7/plat-mac/lib-scriptpackages
/Users/Aaron/.virtualenvs/inventorymgr/Extras/lib/python
/Users/Aaron/.virtualenvs/inventorymgr/lib/python2.7/lib-tk
/Users/Aaron/.virtualenvs/inventorymgr/lib/python2.7/lib-old
/Users/Aaron/.virtualenvs/inventorymgr/lib/python2.7/lib-dynload
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/Users/Aaron/.virtualenvs/inventorymgr/lib/python2.7/site-packages
然而,当我运行loaddata
命令时,我仍然得到相同的ImportError
。有什么想法吗?
【问题讨论】:
【参考方案1】:你需要已经在你的python项目根目录中,你应该使用python manage.py loaddata
;这将setup the environment for you correctly:
另外,每一个Django都会自动创建manage.py 项目。 manage.py 是 django-admin 的一个瘦包装器,它需要 在委派给 django-admin 之前为您处理几件事情:
它将您项目的包放在 sys.path 上。 它设置 DJANGO_SETTINGS_MODULE 环境变量,使其指向您的 项目的 settings.py 文件。 它调用 django.setup() 来初始化 Django 的各种内部结构。
【讨论】:
【参考方案2】:您应该只使用django-admin.py
来创建项目。之后,请始终使用manage.py
,因为它指向您的实际项目设置。
【讨论】:
以上是关于设置 django 的 django-admin,py 的问题的主要内容,如果未能解决你的问题,请参考以下文章
Django-admin.py startproject --带有模板标签的模板