在Windows中将DJANGO_SETTINGS_MODULE永久设置为环境变量
问题内容:
我怎样才能永久设置环境变量DJANGO_SETTINGS_MODULE
上WINDOWS
一个永久的基础上,并用它做什么?
我的意思是
Win Button
+Pause/Break Button
- 这将导致
Control Panel\System and Security\System
- 请点击
Advanced System Settings
- 请点击
Environment Variables
- 有两个框,第一个框标题为
User variables
,第二个框为System variables
- 在
System variables
点击New Button
- 对于输入的变量名
DJANGO_IMPORT_SETTINGS
XXX- >如何 设置一个变量值才能一次全部使用?
在有关此问题的Django网站中,它指出:
DJANGO_SETTINGS_MODULE
使用Django时,必须告诉它所使用的设置。 通过使用环境变量DJANGO_SETTINGS_MODULE来执行此操作。
DJANGO_SETTINGS_MODULE的值应采用Python路径语法,例如mysite.settings。
请注意,设置模块应位于Python导入搜索路径上。
这是什么意思 ……应该采用Python路径语法,例如mysite.settings … ?
- 我有一个
Python
位于我的特定目录:C:\Python27
- 我有一个
Django
位于我的特定目录:C:\Python27\Lib\site-packages\django
这是什么mysite
意思。这是什么目录C:\Something......
您可以一劳永逸地放置此变量,还是必须为每个项目不断更改它(我希望不是!)
这行的可疑含义是什么? 请注意,设置模块应位于Python导入搜索路径上。
我想要它设置DJANGO_SETTINGS_MODULE环境变量,并为此一劳永逸地完成
编辑
为了正常工作,Django只需要指向一个有效的设置文件,默认情况下,它会查找一个名为DJANGO_SETTINGS_MODULE的环境变量,以告诉它在哪里可以找到设置。
此变量的值应该是设置文件的Python导入路径,例如cms.settings。
- >什么目录之王是这样的:cms.settings
?在Windows中,每个目录均以 C:\ Something .....
开头。在Windows中如何启动这样的目录?
EDIT_2
摘自一本书
问题 环境变量DJANGO_SETTINGS_MODULE未定义。
解决方案: 运行命令python manage.py shell
而不是python
。
我的问题 ->关于什么目录?///您可以一次设置还是每个项目不同?
我的项目像这样构造
C:\Python27\pysec-master(file)
|__local_settings.py
|__manage.py
|__settings.py
|__C:\Python27\pysec(file)
|__ __init__.py
|__example.py
|__models.py
|__xbrl.py
|__xbrl_fundamentals.py
我正在尝试运行,models.py
并且settings.py
在中有一个。C:\Python27\pysec-master
您可以在此处找到准确的副本。
MAYBE_IMPORTANT_EDIT
我的项目中有一个名为的文件manage.py
,其中包含这些内容
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
设置变量是否需要做任何事情?我是否需要在循环中在此处设置?
编辑
对于IDLE中的命令,from django.db import settings
我需要为PYTHON_MODULE_SETTINGS
like设置目录C:\Python27\Lib\site- packages\django\db
吗?
问题答案:
好吧,别这么沮丧。让我们一步一步看一下:
- Python路径语法:
在Python中,当您在模块之间拆分代码库时,可以使用模块名称来限定导入的名称。假设您的项目的结构如下:
my_project
|__utils
| |____init__.py
| |__file_utils.py
|__my_module
|____init__.py
|__main.py
在您main.py
要访问的方法中,您可以这样file_utils.py
添加import语句main.py
:
import utils.file_utils.read_file
假设read_file
是您要导入的方法main.py
。这种将模块.
分开的模块导入方式称为python路径语法。
- PYTHONPATH:
在以上示例中,仅当Python解释器知道在哪里寻找第一个模块(即)时,import语句才有效utils
。只有找到后utils
才能找到file_utils
和read_file
。您可以在环境变量中指定要让解释器查看的所有路径的列表PYTHONPATH
。因此,为了在代码中包含如上所述的import语句,必须确保项目的完整路径my_project
在中PYTHONPATH
。假设my_project
是C:\AMAZEBALLS_CODE\my_project
你应该C:\AMAZEBALLS_CODE
在你的PYTHONPATH
- DJANGO_SETTINGS_MODULE:
现在,假设您my_project
实际上是Django应用程序。Django应用程序需要一个设置文件,您可以在其中指定一堆东西。为了指示Django要查看的设置文件,您可以在中指定DJANGO_SETTINGS_MODULE
。假设这是您的项目结构:
my_project
|__utils/
| |____init__.py
| |__file_utils.py
|__my_module/
| |____init__.py
| |__main.py
|__site_settings/
|__dev_settings.py
|__production_settings.py
myroject.site_settings
是Django必须查找的用于设置文件的模块。而且myroject.site_settings.dev_settings
是需要被设置为值DJANGO_SETTINGS_MODULE
在上述情况下。当文档说cms.settings
或时,mysite.settings
它们的意思是cms
或是mysite
项目settings.py
的名称,也是设置文件的名称。
现在,让我们看看您的问题:
您可以在Windows的环境变量中永久设置它吗?当然。
这是正确的方法吗?没有。
因为如果您想明天在另一个位置创建另一个应用程序,则必须在Windows的环境变量部分中对此进行编辑。同样,一种惯例是将不同的设置文件用于开发环境,将另一个设置文件用于生产。因此,使用一个值将其设置在一个位置会使它不灵活。但是,如果你知道所有上述的,并且确信你会是只使用一个设置文件集DJANGO_SETTINGS_MODULE
到myproject.site_settings.dev_settings
的ENV变量部分。
希望这可以帮助!
编辑:
看起来您正在将pysec- master
项目放入C:\Python27
。不要将您的项目放在python安装中。settings.py
在您的项目中创建一个文件并设置DJANGO_SETTINGS_MODULE
为pysec- master.settings