如何永久性地在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 - > 我应该为变量值设置一次并为所有人设置?
在这个issue的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
您可以找到完整的副本here。
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
的{{1}}目录?
答案 0 :(得分:13)
好的,不要那么沮丧。让我们一步一步地看一下:
Python路径语法:
在Python中,当您跨模块拆分代码库时,可以使用模块名称限定导入的名称。假设您的项目结构如下:
my_project
|__utils
| |____init__.py
| |__file_utils.py
|__my_module
|____init__.py
|__main.py
在main.py
中,如果您要访问file_utils.py
中定义的方法,可以在main.py
中添加导入语句,如下所示:
import utils.file_utils.read_file
假设read_file
是要导入main.py
的方法。这种导入模块的方法是将每个模块分开.
,称为python路径语法。
PYTHONPATH:
在上面的例子中,只有当Python解释器知道在哪里查找第一个模块即utils
时,import语句才有效。只有当找到utils
时,才能找到file_utils
和read_file
。您可以在环境变量PYTHONPATH
中指定希望解释器查看的所有路径的列表。因此,为了在代码中包含上述导入语句,您必须确保项目my_project
的完整路径位于PYTHONPATH
。假设my_project
位于C:\AMAZEBALLS_CODE\my_project
,您的C:\AMAZEBALLS_CODE
PYTHONPATH
DJANGO_SETTINGS_MODULE:
现在让我们假设你的my_project
实际上是一个Django应用程序。 Django应用程序需要一个设置文件,您可以在其中指定whole bunch of things。为了指示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的环境变量部分中对其进行编辑。此外,实践中使用不同的设置文件用于开发环境,另一个用于生产。因此,将其设置在一个具有一个值的位置会使其不灵活。但是如果您了解上述所有内容并确定您将仅使用env变量部分中的DJANGO_SETTINGS_MODULE
到myproject.site_settings.dev_settings
的一个设置文件。
希望这有帮助!
编辑:
您似乎将pysec-master
项目放在C:\Python27
中。不要将您的项目放在python安装中。在项目中创建settings.py
文件,并将DJANGO_SETTINGS_MODULE
设置为pysec-master.settings
答案 1 :(得分:3)
你说:
我只想设置DJANGO_SETTINGS_MODULE环境变量 并且从这个麻烦中一劳永逸地完成
如果您不希望每次都经历繁琐的程序,那么您不必将其永久化,您只需要自动执行此程序。
创建一个蝙蝠并将set DJANGO_SETTINGS_MODULE='xxx.settings'
放入其中。
如果您使用的是virtualenv,则可以在bin / activate.bat中设置环境变量。