在Windows中运行Flask看不到环境变量

时间:2018-10-21 01:14:45

标签: python windows flask environment-variables

我想设置一个环境变量DATABASE_URL,我的Flask应用程序将读取该变量以连接到数据库。我使用set DATABASE_URL = '...',但是在执行flask run时出现未设置变量的错误。为什么这行不通?

import os

from flask import Flask
from sqlalchemy import create_engine

app = Flask(__name__)

if not os.getenv("DATABASE_URL"):
    raise RuntimeError("DATABASE_URL is not set")

engine = create_engine(os.getenv("DATABASE_URL"))

我导航到project1的安装目录,然后在Windows 10 cmd.exe中执行以下操作:

set FLASK_APP = application.py
set FLASK_DEBUG = 1
set DATABASE_URL = 'postgres.......' (the credential given by the Heroku account)
flask run

烧瓶运行,我转到localhost:5000,并收到以下错误:

Traceback (most recent call last):
  File "c:\program files\python36\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
  File "C:\Program Files\Python36\learningPython\web_CS50\project1\application.py", line 12, in <module>
    raise RuntimeError("DATABASE_URL is not set")
RuntimeError: DATABASE_URL is not set 

5 个答案:

答案 0 :(得分:0)

一个简单的尝试:

  1. 在Windows上,使用setx而不是set来修改系统环境变量。

    setx FLASK_APP = application.py

  2. 启动新的命令处理器,以查看环境中反映的变量(在初始化外壳程序时设置这些变量)。

答案 1 :(得分:0)

只需从设置命令中删除空格

set FLASK_APP=application.py
set FLASK_DEBUG=1
set DATABASE_URL='postgres.......'

更多{@ {3}}

答案 2 :(得分:0)

set FLASK_APP=application.py
set FLASK_DEBUG=1
set DATABASE_URL='postgres.......' (WITHOUT THE QUOTATION MARKS, because the system put it automatically, I opened a notepad and set the password and copy paste and execute in powershell

答案 3 :(得分:0)

你需要在你的电脑的环境变量中设置你的路径。 你可以在这里找到你的python路径 C:\Users"你的默认用户名"\AppData\Local\Programs\Python\Python39。 设置路径后使用

  1. pip3 安装

答案 4 :(得分:-1)

就个人而言,当我使用烧瓶运行时,我遇到了一个问题。我收到此消息“无法将'flask'识别为内部或外部可操作程序或批处理文件”,这可能是问题所在。