簡體   English   中英

PyCharm如何設置環境變量?

[英]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 的運行配置菜單中設置環境變量。

  1. 打開右上角的運行配置選擇器,然后單擊Edit Configurations...

編輯配置...

  1. 從菜單中選擇正確的文件,找到Environmental variables並單擊...

環境變量

  1. 添加或更改變量,然后單擊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 中單擊播放按鈕,一切都像一個魅力。

此功能現已添加到 IDE(工作 Pycharm 2018.3)

只需單擊運行配置中的EnvFile選項卡,單擊Enable EnvFile並單擊 + 圖標以添加 env 文件

以光榮的材料為主題的例子

更新:與@imguelvargasf 的答案基本相同,但插件默認為我啟用。

原來的問題是:

如何在 PyCharm 中設置環境變量?

最受歡迎的兩個答案告訴您如何為 PyCharm運行/調試配置設置環境變量 - 在“環境變量”中手動輸入它們或使用 EnvFile 插件。

在使用 PyCharm 多年后,我了解到您可以設置 PyCharm 環境變量的其他關鍵區域。 EnvFile 不適用於這些其他領域!

這里是 ELSE 看的地方:

  • 工具 > 終端 > 環境變量
  • 語言和框架 > Django > 環境變量
  • 設置 > 構建、執行、部署 > 控制台 > Python 控制台 > 環境變量
  • 設置 > 構建、執行、部署 > 控制台 > Django 控制台 > 環境變量

當然,還有你已經提到的運行/調試配置。

這是您可以在pycharm flask/django 控制台中獲取 .env(和 .flaskenv)文件的方法。 當然,它也適用於普通的 python 控制台。

  1. 在您的環境中執行pip install python-dotenv (與 pycharm 指向的相同)。

  2. 轉到:設置 > 構建、執行、部署 > 控制台 > Flask/django 控制台

  3. “啟動腳本”中,在頂部附近包括這樣的內容:

    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 文件中調用環境變量有很大幫助,而且它也很容易實現。

  1. 在同一層級創建一個 .env 文件,其中包含您的 main.py(您當前正在使用的 python 文件以及您希望更新環境變量的位置)

  2. 安裝一個名為“python-dotenv”的包

  3. 在 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 "$@"

如果有人想為他們的所有運行/調試配置設置環境變量,我會在此處列出我的解決方案。

  1. 轉到其他答案所指出的編輯配置。
  2. 單擊面板中的編輯配置模板
  3. 在那里編輯環境變量。

通過這樣做,每次創建新配置時變量都會存在。

使用 2022.2 版本的 PyCharm 無法正常工作。 您應該降級版本並按照 Joran Beasley 的回答中提到的步驟進行操作。

暫無
暫無

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

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