注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天边云E家 shaoruisky

IT博文共享,知识的海洋

 
 
 

日志

 
 

Django开发中DJANGO_SETTINGS_MODULE is undefined解决方案  

2014-10-15 11:35:47|  分类: python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

具体错误我描述为两种方式形成的错误

一种是进入解释器交互环境中进行编码

F:\VideoTxSpace\mysite>python

Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> from django import template

>>> t = template.Template('my name is {{name}}')

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "F:\Python27\lib\site-packages\django\template\base.py", line 123, in __init__

    if settings.TEMPLATE_DEBUG and origin is None:

  File "F:\Python27\lib\site-packages\django\utils\functional.py", line 184, in inner

    self._setup()

  File "F:\Python27\lib\site-packages\django\conf\__init__.py", line 40, in _setup

    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." %

 ENVIRONMENT_VARIABLE)

ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is und

efined.

 

另一种是直接在文件中编码,通过python命令运行

myiste\mysite目录下有个testTemplate.py,内容如下

from django import template

t = template.Template('my name is {{ name }}.')

c = template.Context({'name':'wujintao'})

 

F:\VideoTxSpace\mysite>python F:\VideoTxSpace\mysite\mysite\testTmpelate.py

Traceback (most recent call last):

  File "F:\VideoTxSpace\mysite\mysite\testTmpelate.py", line 2, in <module>

    t = template.Template('my name is {{ name }}.')

  File "F:\Python27\lib\site-packages\django\template\base.py", line 123, in __init__

    if settings.TEMPLATE_DEBUG and origin is None:

  File "F:\Python27\lib\site-packages\django\utils\functional.py", line 184, in inner

    self._setup()

  File "F:\Python27\lib\site-packages\django\conf\__init__.py", line 40, in _setup

    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." %

 ENVIRONMENT_VARIABLE)

ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is und

efined.

 

 

经实践,有三种解决方案

第一种解决方案

进入到mysite目录下,用python manage.py shell启动python解释器环境,manage.py shell命令在启动解释器之前,它告诉Django使用哪个设置文件。 Django框架的大部分子系统,包括模板系统,都依赖于配置文件;如果Django不知道使用哪个配置文件,这些系统将不能工作。

 

 

执行程序

 

F:\VideoTxSpace\mysite>python manage.py shell

Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

(InteractiveConsole)

>>> from django import template

>>> t = template.Template('my name is {{name}}')

>>> c = template.Context({'name':'wujintao'})

>>> print t.render(c)

my name is wujintao

 

 

第二种解决方案

不用通过python manage.py shell开启解释器交互模式,直接在代码开始前中加入如下代码片段

from django.conf import settings

settings.configure()

 

完整代码

from django import template

from django.conf import settings

settings.configure()

t = template.Template('my name is {{ name }}.')

c = template.Context({'name':'wujintao'})

 

执行程序

 

F:\VideoTxSpace\mysite>python F:\VideoTxSpace\mysite\mysite\testTmpelate.py

my name is wujintao.

 

 

第三种解决方案

windows下设置环境变量

新增环境变量如下

添加DJANGO_SETTINGS_MODULE 值为mysite.settings 

添加PYTHONPATH   值为 F:\Python27\DLLs;F:\VideoTxSpace\mysite

 

 

解释

Django搜索DJANGO_SETTINGS_MODULE环境变量,它被设置在settings.py中。例如,假设mysite在你的Python搜索路径中,那么DJANGO_SETTINGS_MODULE应该被设置为:’mysite.settings’

 

 

 

完整代码

from django import template

t = template.Template('my name is {{ name }}.')

c = template.Context({'name':'wujintao'})

 

执行程序

F:\VideoTxSpace\mysite>python F:\VideoTxSpace\mysite\mysite\testTmpelate.py

my name is wujintao.

 

 

附上我程序的结构图,以方便大家对以上方案的理解


F:\VideoTxSpace\mysite这个mysite为python项目名称


  评论这张
 
阅读(203)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016