为什么我的环境变量无法加载到我的flask应用程序中? - python

不确定是否要在Linux中发布在这里,但是我遇到了一些麻烦。我有一个需要环境变量的Flask博客应用程序。我正在使用os模块访问它们,如下所示:

import os
app.config['SECRET_KEY'] = os.environ['SECRET_KEY']

但是,当我这样做时,我在“秘钥”上收到KeyError。我确信已经永久设置了环境变量,我真的很困惑,并且我已经困扰了这个问题好几天了,确实需要一些帮助。对不起,如果我的描述不够充分;如果您需要更多信息,请在评论中提问。另外,两者之间有什么区别?

os.environ['env var']

on.environ.get('env var')

这是Apache的配置

<VirtualHost *:80>
  ...
  SetEnv SECRET_KEY secret_as_heck
  ...
</VirtualHost>

这是python init

def create_app():    
    app = Flask(__name__)
    app.config['SECRET_KEY'] = os.environ['SECRET_KEY']
    app.config['SQLALCHEMY_DATABASE_URI'] =os.environ['DB_URI']
    app.config['MAIL_SERVER'] = 'smtp.googlemail.com'
    app.config['MAIL_PORT'] = 587
    app.config['MAIL_USE_TLS'] = True
    app.config['MAIL_USERNAME'] = os.environ['MAIL_USERNAME']
    app.config['MAIL_PASSWORD'] = os.environ['MAIL_PASSWORD']

谢谢

参考方案

在您的Apache虚拟主机配置中,添加如下所示的变量

<VirtualHost hostname:80>
   ...
   SetEnv VARIABLE_NAME variable_value
   ...
</VirtualHost>

os.environ['env var']on.environ.get('env var')的区别在于,如果找不到环境变量,而.get(key)会升高None,则os.environ['env var']将返回KeyError

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

如何用'-'解析字符串到节点js本地脚本? - python

我正在使用本地节点js脚本来处理字符串。我陷入了将'-'字符串解析为本地节点js脚本的问题。render.js:#! /usr/bin/env -S node -r esm let argv = require('yargs') .usage('$0 [string]') .argv; console.log(argv…

Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…

Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

Matplotlib'粗体'字体 - python

跟随this example:import numpy as np import matplotlib.pyplot as plt fig = plt.figure() for i, label in enumerate(('A', 'B', 'C', 'D')): ax = f…