簡體   English   中英

將Flask env var添加到virtualenv的激活腳本中可以嗎?

[英]Is adding Flask env vars to the virtualenv's activate script OK?

我正在virtualenv中進行Flask項目。 每次啟動新終端時,都必須重新初始化以下Flask環境變量:

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

我的目標是不必手動輸入。

我嘗試編寫一個設置它們的Python腳本,但無法使其正常工作。 我嘗試編寫設置它們的shell腳本,但是Flask會引發一個錯誤,提示我的Python路徑不正確。

最后,我嘗試將env vars添加到virtualenv的activate腳本的底部。 有效! 設置環境變量,並且Flask按預期運行。

$ source venv/bin/activate
$ flask run

這樣修改activate腳本可以嗎? 這只是出於發展目的。

是的,在virtualenv的activate腳本中設置環境變量非常適合管理您的開發環境。 Flask的文檔中對此進行了描述。 它們僅在終端中激活了環境時才處於活動狀態,如果創建新的環境,則必須記住要添加它們,但這沒什么問題。


在Flask 1.0中,您可以改用dotenv文件 安裝python-dotenv:

pip install python-dotenv

添加一個.flaskenv文件:

FLASK_APP=server

並且flask命令將在運行命令時自動設置它們:

flask run

與使用venv相比,這樣做的好處是您可以提交此文件,以便將其應用於您處理代碼的任何地方。

修改venv/bin/activate文件對您venv/bin/activate ,因為在虛擬環境中定義了環境變量。 使用python3 -m venv venv時,新虛擬環境中不存在環境變量。 無需修改activate文件,您可以制作一個shell腳本,該腳本:

  1. 運行venv/bin/activate
  2. 定義環境變量
  3. 運行服務器

首先,我嘗試編寫一個設置它們的Python腳本,但是經過研究,我意識到這是不可能的(?)。

您可以使用os.environ從內部執行相同操作,但是shell腳本更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM