我正在 virtualenv 中处理我的 Flask 项目。每次启动新终端时,我都必须重新初始化这些 Flask 环境变量:
export FLASK_APP="server.py"
export FLASK_DEBUG="1"
我的目标是不必手动输入它们。
我尝试编写一个 Python 脚本来设置它们,但无法使其工作。我尝试编写一个设置它们的 shell 脚本,但 Flask 会引发错误,指出我的 Python 路径不正确。
最后,我尝试将环境变量添加到 virtualenv 的 activate
脚本的底部。有效!环境变量已设置,Flask 按预期运行。
$ source venv/bin/activate
$ flask run
这样修改activate
脚本可以吗?这仅用于开发目的。
最佳答案
是的,在 virtualenv 的 activate
脚本中设置环境变量可以很好地管理您的开发环境。 It's described in Flask's docs.它们仅在终端中激活 env 时才处于事件状态,如果您创建新的 env,则必须记住添加它们,但这没有任何问题。
使用 Flask 1.0,您可以 use dotenv files反而。安装 python-dotenv:
pip install python-dotenv
添加一个.flaskenv
文件:
FLASK_APP=server
flask
命令会在运行命令时自动设置它们:
flask run
与混淆 venv 相比,这样做的好处是您可以提交此文件,因此它适用于您处理代码的任何地方。
关于python - 将 Flask env vars 添加到 virtualenv 的激活脚本可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49578955/