将 Flask env vars 添加到虚拟环境的激活脚本中可以吗?



我正在Virtualenv中的烧瓶项目。每当我启动一个新的终端时,我都必须重新初始化这些烧瓶环境变量:

export FLASK_APP="server.py"
export FLASK_DEBUG="1"

我的目标是不必手动输入它们。

我尝试编写一个设置它们的python脚本,但无法使其起作用。我尝试编写一个设置它们的外壳脚本,但是烧瓶会引起一个错误,说我的python路径不正确。

最后,我尝试在Virtualenv的activate脚本的底部添加env var。有效!设置ENV VAR并按照预期运行。

$ source venv/bin/activate
$ flask run

可以修改这样的activate脚本吗?这仅是出于开发目的。

是的,在Virtualenv的activate脚本中设置环境变量对于管理开发环境是可以的。它在烧瓶的文档中进行了描述。它们仅在终端激活ENV时才活跃,如果创建新的Env,您必须记住添加它们,但是没有任何问题。


使用烧瓶1.0,您可以使用dotenv文件。安装Python-Dotenv:

pip install python-dotenv

添加.flaskenv文件:

FLASK_APP=server

flask命令将在运行命令时自动设置它们:

flask run

与VENV混乱相比,您可以提交此文件,因此它适用于您在代码上工作的任何地方。

修改venv/bin/activate文件对您有用,因为环境变量在虚拟环境中得到定义。当您使用python3 -m venv venv时,环境变量在新的虚拟环境中不存在。而不是修改activate文件,而是可以制作一个shell脚本,该脚本:

  1. 运行venv/bin/activate
  2. 定义环境变量
  3. 运行服务器

首先,我尝试编写一个设置它们的python脚本,但是经过研究,我意识到不可能(?(。

您可以使用os.environ从内部进行相同的操作,但是shell脚本更好。

最新更新