将Flask env var添加到virtualenv的激活脚本中可以吗?
问题内容:
我正在virtualenv中进行Flask项目。每次启动新终端时,都必须重新初始化以下Flask环境变量:
export FLASK_APP="server.py"
export FLASK_DEBUG="1"
我的目标是不必手动输入。
我尝试编写设置它们的Python脚本,但无法使其正常工作。我尝试编写设置它们的shell脚本,但是Flask会引发一个错误,提示我的Python路径不正确。
最后,我尝试将env vars添加到virtualenvactivate
脚本的底部。有效!设置环境变量,并且Flask按预期运行。
$ source venv/bin/activate
$ flask run
这样修改activate
脚本可以吗?这只是出于发展目的。
问题答案:
是的,在virtualenvactivate
脚本中设置环境变量非常适合管理您的开发环境。Flask的文档中对此进行了描述。它们仅在终端中激活了环境时才处于活动状态,如果创建新的环境,则必须记住要添加它们,但这没什么问题。
在Flask
1.0中,您可以改用dotenv文件。安装python-dotenv:
pip install python-dotenv
添加.flaskenv
文件:
FLASK_APP=server
并且该flask
命令将在运行命令时自动设置它们:
flask run
与使用venv相比,这样做的好处是您可以提交此文件,以便将其应用于您在代码上工作的任何地方。