[英]How to set environment variables in PyCharm?
我已經開始在 Django 項目上工作,我想設置一些環境變量而不手動設置它們或將 bash 文件作為源文件。
我想設置以下變量:
export DATABASE_URL=postgres://127.0.0.1:5432/my_db_name
export DEBUG=1
# there are other variables, but they contain personal information
我已閱讀此內容,但這並不能解決我想要的問題。 此外,我嘗試在Preferences -> Build, Execution, Deployment -> Console -> Python Console / Django Console中設置環境變量,但它為解釋器設置了變量。
您可以在 Pycharm 的運行配置菜單中設置環境變量。
Edit Configurations...
Environmental variables
並單擊...
OK
您可以使用os.environ
訪問您的環境變量
import os
print(os.environ['SOME_VAR'])
我能夠使用一個名為EnvFile的 PyCharm 插件來解決這個問題。 該插件基本上允許設置環境變量以從一個或多個文件運行配置。
安裝非常簡單:
Preferences > Plugins > Browse repositories... >搜索“Env File” > Install Plugin 。
然后,我在我的項目根目錄中創建了一個名為environment.env
的文件,其中包含:
DATABASE_URL=postgres://127.0.0.1:5432/my_db_name
DEBUG=1
然后我去了Run -> Edit Configurations ,我按照下一張圖片中的步驟操作:
在 3 中,我選擇了文件environment.env
,然后我可以在 PyCharm 中單擊播放按鈕,一切都像一個魅力。
原來的問題是:
如何在 PyCharm 中設置環境變量?
最受歡迎的兩個答案告訴您如何為 PyCharm運行/調試配置設置環境變量 - 在“環境變量”中手動輸入它們或使用 EnvFile 插件。
在使用 PyCharm 多年后,我了解到您可以設置 PyCharm 環境變量的其他關鍵區域。 EnvFile 不適用於這些其他領域!
這里是 ELSE 看的地方:
當然,還有你已經提到的運行/調試配置。
這是您可以在pycharm flask/django 控制台中獲取 .env(和 .flaskenv)文件的方法。 當然,它也適用於普通的 python 控制台。
在您的環境中執行pip install python-dotenv
(與 pycharm 指向的相同)。
轉到:設置 > 構建、執行、部署 > 控制台 > Flask/django 控制台
在“啟動腳本”中,在頂部附近包括這樣的內容:
from dotenv import load_dotenv
load_dotenv(verbose=True)
.env 文件可能如下所示: export KEY=VALUE
是否包含export
並不重要,dotenv 是否可以讀取它。
作為替代方案,您還可以在激活 shell 腳本中為相應的虛擬環境獲取 .env 文件。
這家伙說得對https://stackoverflow.com/a/42708476/9760669
請記住 .env 變量不能用 export 定義。 例如REDIS_HOST=localhost
,但如果您使用export REDIS_HOST=localhost
定義,那么它將不起作用。
以上方法都不適合我。 如果您使用的是 Windows,請在 PyCharm 終端上嘗試:
setx YOUR_VAR "VALUE"
您可以使用os.environ['YOUR_VAR']
在腳本中訪問它。
這種方法對我從 .env 文件中調用環境變量有很大幫助,而且它也很容易實現。
在同一層級創建一個 .env 文件,其中包含您的 main.py(您當前正在使用的 python 文件以及您希望更新環境變量的位置)
安裝一個名為“python-dotenv”的包
在 main.py 中導入並加載包,如下所示
import os from dotenv import load_dotenv, find_dotenv load_dotenv(find_dotenv()) any_secret_var = os.get_env("SECRET_KEY")
和 BOOM 它會像魔術一樣工作
.env 文件應該看起來像,不要在 .env 文件中的值上放置任何 qoutes
SECRET_KEY=any_secret_value_you_need_to_place_in
我可以看到所有的答案都是利用GUI來設置env變種。 但是,如果您關閉項目並重新打開,它們似乎會重置。 在Linux上對我有用的是創建終端可執行文件並從終端啟動pycharm。 這樣它就可以識別所有系統的env變量。
創建終端可執行文件的步驟:
工具 - >創建Coomand-line Launcher .. - > OK然后通過在終端中運行charm
應識別所有env變量。
免責聲明然而,它似乎不是動態的。 如果您希望在運行中更改env變量,則可能需要堅持上述答案。 否則,我認為這個解決方案更容易。
在 Pycharm Python 控制台中,只需鍵入
ENV_VAR_NAME="STRING VARIABLE"
INT_VAR_NAME=5
與其他 Python 文本編輯器不同,您無需在 Pycharm 中添加export
使用虛擬環境測試的解決方案。
創建定義和導出或獲取環境變量的腳本。 然后將腳本定義為現有虛擬環境的 python 解釋器。 該解決方案適用於任何任務,如運行、調試、控制台......
示例腳本:
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
export VAR1="TEST1"
source $DIR/../../.env
$DIR/python "$@"
如果有人想為他們的所有運行/調試配置設置環境變量,我會在此處列出我的解決方案。
通過這樣做,每次創建新配置時變量都會存在。
使用 2022.2 版本的 PyCharm 無法正常工作。 您應該降級版本並按照 Joran Beasley 的回答中提到的步驟進行操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.