我正在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脚本,该脚本:
- 运行
venv/bin/activate
- 定义环境变量
- 运行服务器
首先,我尝试编写一个设置它们的python脚本,但是经过研究,我意识到不可能(?(。
您可以使用os.environ
从内部进行相同的操作,但是shell脚本更好。