Wie setze ich Umgebungsvariablen in PyCharm?

79

Ich habe begonnen, in einem Django-Projekt zu arbeiten, und ich möchte einige Umgebungsvariablen festlegen, ohne sie manuell festlegen zu müssen oder eine Bash-Datei als Quelle zu haben.

Ich möchte folgende Variablen setzen:

export DATABASE_URL=postgres://127.0.0.1:5432/my_db_name
export DEBUG=1
# there are other variables, but they contain personal information

Ich habe gelesen das , aber das bedeutet nicht lösen , was ich will. Außerdem habe ich versucht, die Umgebungsvariablen in den Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Konsole -> Python-Konsole / Django-Konsole festzulegen , aber die Variablen für den Interpreter werden festgelegt.

lmiguelvargasf
quelle
Das Festlegen von Variablen in pycharm hat einen Nachteil: Sie verlieren sie, wenn Sie das Profil löschen. Eine Alternative besteht darin, einen Standardwert wie den folgenden zu setzen: os os.getenv importieren (key = 'DATABASE_URL', default = 'postgres: //127.0.0.1: 5432 / my_db_name')
YH Wu
Ich denke, wenn Sie den in meiner Antwort erwähnten Ansatz verwenden, werden Sie die Umgebungsvariablen nicht verlieren, da sie in der von Ihnen verwendeten Datei enthalten sind. Diese Antwort geht nicht auf die Frage ein, da sie sich darauf bezieht, wie sie in PyCharm festgelegt werden, nicht ob sie verloren gehen oder nicht.
lmiguelvargasf
2
Ich halte es auch nicht für eine gute Idee, Werte direkt im Code fest zu codieren. Dies ist eine sehr schlechte Praxis.
lmiguelvargasf

Antworten:

132

Sie können Umgebungsvariablen im Menü "Laufkonfigurationen" von Pycharm festlegen.

  1. Öffnen Sie den Selector Run Configuration oben rechts und klicken Sie Edit Configurations...

    Konfigurationen bearbeiten ...

  2. Suchen Environmental variablesund klicken...

    Umgebungsvariablen

  3. Fügen Sie Variablen hinzu oder ändern Sie sie, und klicken Sie dann auf OK

    Umgebungsvariablen bearbeiten

Sie können Ihre Umgebungsvariablen zugreifen mitos.environ

import os
print(os.environ['SOME_VAR'])
Joran Beasley
quelle
1
Oh, ich habe nur versucht, in diese Zeile zu tippen. Der dreifache Punkt sah ausgegraut aus, sodass ich nicht einmal daran dachte, darauf zu klicken.
Alexey
4
Ich habe diese Methode ausprobiert, aber PyCharm wählt nicht die definierte env var aus (ich habe speziell versucht, DATABASE_URL festzulegen). Sieht aus wie ein PyCharm-Fehler.
LNI
2
@LNI In PyCharm gibt es zwei Stellen, an denen wir env-Variablen setzen können. Eine ist für die laufende Umgebung (und sie legt fest, wie Joran gezeigt hat) und wir können auch Variablen festlegen, die für die Konsole in Pycharm verfügbar sind (und hier werden Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Konsole -> Python-Konsole festgelegt)
Roman Kazakov
Ja, das scheint mir die richtige Antwort zu sein. Ich würde hinzufügen, dass, wenn Sie die Umgebungsvariable in der Defaults / Python-Konfiguration festlegen, sie jedes Mal verwendet wird, wenn Sie mit der rechten Maustaste auf ein Skript klicken und es ausführen
Chris Sewell
1
Das hat bei mir funktioniert. Musste meinen Dolmetscher allerdings zuerst neu starten.
Kosmonaut
83

Ich konnte dies mit einem PyCharm-Plugin namens EnvFile herausfinden . Dieses Plugin ermöglicht grundsätzlich das Festlegen von Umgebungsvariablen zum Ausführen von Konfigurationen aus einer oder mehreren Dateien.

Die Installation ist ziemlich einfach:

Einstellungen > Plugins > Repositorys durchsuchen ... > Nach "Env-Datei" suchen > Plugin installieren .

Dann habe ich in meinem Projektstamm eine Datei erstellt, die heißt environment.env:

DATABASE_URL=postgres://127.0.0.1:5432/my_db_name
DEBUG=1

Dann ging ich zu Ausführen -> Konfigurationen bearbeiten und befolgte die Schritte im nächsten Bild:

Umgebungsvariablen festlegen

In 3 habe ich die Datei ausgewählt environment.envund dann konnte ich einfach auf die Wiedergabetaste in PyCharm klicken, und alles funktionierte wie ein Zauber.

lmiguelvargasf
quelle
7
@lmiguelvargasf Ich kann dir nicht genug für diese Antwort danken. Es sieht so aus, als ob Pycharm Env-Vars-Quellen in .bashrc nicht abrufen kann (ich bin unter Linux). Dieses Plugin hat mir viel Zeit gespart, da ich postaktivierte Dateien als Quelle verwenden kann.
Jacekbj
1
@ lmiguelvargasf ja, sorry. Ich meine 2017.2.4
Daniil Mashkin
2
Arbeiten hier am 2017.3. Vielen Dank!
Losik123
Arbeiten in 2017.2
Jonathan
2
@krinker, wenn Sie nach der Datei suchen, drücken Sie bitte cmd+ shift+ ., um die versteckten Dateien anzuzeigen .
lmiguelvargasf
10

Diese Funktionalität wurde jetzt zur IDE hinzugefügt (funktionierender Pycharm 2018.3)

Klicken Sie einfach auf die EnvFileRegisterkarte in der Ausführungskonfiguration, klicken Sie auf Enable EnvFileund klicken Sie auf das Symbol +, um eine Umgebungsdatei hinzuzufügen

Beispiel mit dem herrlichen Materialthema

Update: Im Wesentlichen das gleiche wie die Antwort von @imguelvargasf, aber das Plugin war für mich standardmäßig aktiviert.

Nino van Hooff
quelle
2
Ich bin Pycharm 2019 und sehe die Registerkarte nicht EnvFile. Ist dies in der Python-Konfiguration verfügbar (Ihr Screenshot ist DjangoServer)?
alltej
0

Keine der oben genannten Methoden hat bei mir funktioniert. Wenn Sie unter Windows arbeiten, versuchen Sie dies auf dem PyCharm-Terminal:

setx YOUR_VAR "VALUE"

Sie können in Ihren Skripten mit darauf zugreifen os.environ['YOUR_VAR'].

Bex Tuychiev
quelle