当前位置: 首页 > 面试题库 >

无法在Django设置文件中获取环境变量

锺离烈
2023-03-14
问题内容

我正在尝试读取Django设置中的一些环境变量,我在/home/user/.bashrc中定义了该变量(后来在/etc/bash.bashrc中定义了),但是我得到的只是一个KeyError异常。我知道我的环境变量已设置,因为我可以在终端(回显$
VAR_NAME)中打印它们。这应该是微不足道的。

这是我正在使用的代码。

from django.core.exceptions import ImproperlyConfigured

msg = "Set the %s environment variable"


def get_env_variable(var_name):
    try:
        return os.environ[var_name]
    except KeyError:
        error_msg = msg % var_name
        raise ImproperlyConfigured(error_msg)

OS_DB_USER = get_env_variable('MY_USER')
OS_DB_PASS = get_env_variable('MY_PASS')
OS_DB_DB = get_env_variable('MY_DB')
OS_GAME_LOGS = get_env_variable('DIR_LOGS')

我只是找不到什么。有什么建议吗?

谢谢

编辑:使用mod_wsgi在Apache上运行。


问题答案:

我已经设法通过使用以下解决方案来解决我的问题:

http://drumcoder.co.uk/blog/2010/nov/12/apache-environment-variables-and-
mod_wsgi/



 类似资料:
  • 我有来自POST方法的响应正文,如下所示 然后我想提取该会话密钥以添加到我使用此代码的环境变量中 但是在环境变量上仍然返回“undefined”值。请帮助,谢谢

  • 问题内容: 我正在使用以下maven pom.xml代码片段从文件jenkins / version.properties中读取名为BUILD_NUMBER的属性。 Jenkins还有一个名为$ BUILD_NUMBER的环境变量。我有尝试使用$ BUILD_NUMBER的子pom.xmls,它一直在为$ BUILD_NUMBER选取Jenkins环境变量值,而不是从jenkins / versi

  • 项目框架: vite2 + vue3 我已经下好electron-v23.2.0-win32-x64并解压到d盘 在初始化项目时 npm i,electron包无法访问到ELECTRON_SKIP_BINARY_DOWNLOAD 变量导致无法安装成功。 E:/.../node_modules/electron/install.js: 我已在环境变量中设置ELECTRON_SKIP_BINARY_D

  • 问题内容: 有没有一种方法可以在Linux中使用C设置环境变量? 我尝试了和,但是它们似乎并没有为我工作。 问题答案: 我将在这里做出一个疯狂的猜测,但是这些功能似乎不起作用的正常原因不是因为它们不起作用,而是因为用户并不真正了解环境变量的工作原理。例如,如果我有此程序: 然后我从外壳程序运行它,它不会修改外壳程序的环境- 子进程无法做到这一点。这就是为什么内置可修改环境的shell命令的原因,以

  • 我尝试为将在Windows子系统Linux中运行的Visual Studio Code任务设置环境变量。然而,它似乎不起作用。这是我的tasks.json: 输出为: 请注意,默认情况下,shell已被手动修改为WSL的,正如这里和这里推荐的那样。

  • 为了给OpenStack命令行客户端提供所需的环境变量,您必须创建OpenStack RC文件,或者说叫openrc.sh文件。如果您安装的时候有这个文件,您可以在OpenStack控制台用任意一个用户下载到这个文件。这个针对某个project有效地文件包含了所有OpenStack服务所需的关键信息。 当您手动载入这个文件时,里面的环境变量配置便会加载进当前Shell中。这些环境变量连接了本地的O