小编典典

在Windows中将DJANGO_SETTINGS_MODULE永久设置为环境变量

python

我怎样才能永久设置环境变量DJANGO_SETTINGS_MODULEWINDOWS一个永久的基础上,并用它做什么?

我的意思是

  1. Win Button + Pause/Break Button
  2. 这将导致 Control Panel\System and Security\System
  3. 请点击 Advanced System Settings
  4. 请点击 Environment Variables
  5. 有两个框,第一个框标题为User variables,第二个框为System variables
  6. System variables点击New Button
  7. 对于输入的变量名 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_SETTINGSlike设置目录C:\Python27\Lib\site- packages\django\db吗?


阅读 216

收藏
2021-01-20

共1个答案

小编典典

好吧,别这么沮丧。让我们一步一步看一下:

  • 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_utilsread_file。您可以在环境变量中指定要让解释器查看的所有路径的列表PYTHONPATH。因此,为了在代码中包含如上所述的import语句,必须确保项目的完整路径my_project在中PYTHONPATH。假设my_projectC:\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_MODULEmyproject.site_settings.dev_settings的ENV变量部分。

希望这可以帮助!

编辑:

看起来您正在将pysec- master项目放入C:\Python27。不要将您的项目放在python安装中。settings.py在您的项目中创建一个文件并设置DJANGO_SETTINGS_MODULEpysec- master.settings

2021-01-20