设置 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 使用哪个设置模块?

Django-admin模块

Django-admin.py startproject --带有模板标签的模板

django-admin.py和manage.py的用法

什么时候应该使用 django-admin.py 和 manage.py?

django运行django-admin.py无法创建网站