2015-11-10 21 views
7

wenn ich meine Umgebungsvariablen aktualisiere (ich benutze vim um ~/.bashrc zu bearbeiten) PyCharm erhält die Updates nicht sofort, ich muss das Programm herunterfahren, Quelle ~/.bashrc wieder, und wieder öffnen PyCharmpycharm aktualisiert nicht mit Umgebungsvariablen

Kann PyCharm die Änderungen automatisch oder ohne Herunterfahren liefern?

+0

Neugierig ... wie oft aktualisieren Sie die Umgebung vars? Vielleicht haben Sie auch mehr Glück bei http://superuser.com. – isherwood

+0

nicht sehr oft, einige sensible Informationen für mein Projekt sind in Umwelt-Vars statt im Code gespeichert, ich sehe die Variablen richtig, wenn ich '$ printenv', so dass ich glaube nicht, dass es ein Problem mit dem Betriebssystem ist – RenaissanceProgrammer

+0

Mein Problem behoben Mit dem Neustart funktionierte nicht die richtige RC-Datei für meine Shell. Aber Pycharm benötigt noch einen Neustart, um neue Variablen in 'os.environ' zu bekommen. – RenaissanceProgrammer

Antwort

5

Wenn ein Prozess es die Umgebungsvariablen erben erstellt Entfliehen Sie dem übergeordneten Prozess (der O.S. sich in Ihrem Fall) ist. Wenn Sie die Umgebungsvariablen auf der übergeordneten Ebene ändern, ist dies dem untergeordneten Prozess nicht bekannt.

Mit PyCharm können Sie die Umgebungsvariablen im Fenster Run \ Debug Configuration ändern. Run> Bearbeiten Konfigurationen> Umgebungsvariablen ->

Images

+1

Dank Omer727 bin ich mir bewusst, dass Vars manuell in den Test aufgenommen wurde und diese Option verwendet hat. Ich habe mich jedoch gefragt, warum os.environ nicht aktualisiert wurde. Es sieht so aus, als ob der untergeordnete Prozess nicht aktualisiert wird gestartet ist korrekt, scheint es keine Möglichkeit zu aktualisieren, ohne die App herunterzufahren – RenaissanceProgrammer

0

Dies ist einfach wie Umgebungsvariablen arbeiten. Wenn Sie sie ändern, müssen Sie Ihre .bashrc (oder die Datei, in der sich die Umgebungsvariablen befinden) neuquellen.

+0

ja, das ist verständlich, jedoch die Ressource im Terminal nicht aktualisieren die Variablen im Betriebssystem-Objekt aktualisiert, dazu gehört das Ausführen von Stück Code, nachdem die Quelle fertig ist. nur das Herunterfahren der App vollständig und das erneute Starten fügt dem Betriebssystemobjekt die neuen Variablen hinzu, technisch gesehen sollte das OS-Objekt bei jedem Ausführen des Codes neu sein. – RenaissanceProgrammer

+0

Wiederum funktionieren Umgebungsvariablen so. Wenn Sie Ihre Anwendung laden, wird sie im Wesentlichen mit einem Snapshot Ihrer Umgebung geladen. –

+0

ok, aber IMO "das ist nur, wie es funktioniert" ist nicht viel von einer Antwort, Omer lieferte einige Hintergrundinformationen über WARUM es auf diese Weise funktioniert, weshalb es meine Akzeptanz bekam – RenaissanceProgrammer

0

Pycharm unterhält eine eigene Version von Umgebungsvariablen, die nicht von der Shell stammen.

Es scheint, dass, wenn pycharm von einem virtualenv oder der Shell, die diese Variablen enthält, ausgeführt wird, wird mit ihnen geladen, jedoch ist es nicht dynamisch.

Die folgende Antwort enthält ein settings.py-Skript, mit dem der virtualenv die Einstellungen aktualisieren und verwalten kann. Ob das deine Frage vollständig löst oder nicht, bin ich nicht sicher.

Pycharm: set environment variable for run manage.py Task

0

Ich entdeckte vor kurzem eine Abhilfe in den Fenstern:

Um in der PyCharm definiert auf den Umgebungsvariablen Startkonfiguration, verwenden Sie den -E Schalter passieren korrekt. Schließen PyCharm, kopieren Sie den Befehl PyCharm direkt von der Verknüpfung zu laufen, und es in einem neuen Terminal-Fenster erneut ausführen: cmd, cmder usw.

C:\ 
λ "C:\Program Files\JetBrains\PyCharm 2017.2.1\bin\pycharm64.exe" 
0

In meinem Fall PyCharm findet nicht env Variablen aus bashrc auch nach dem Neustart