Um in Windows eine neue Variable = Wert festzulegen, können wir sie einfach zur Umgebungsvariable hinzufügen. In Linux sieht das jedoch etwas kompliziert aus. Dies ist das Verfahren, das ich befolgt habe:
Öffnen Sie Terminal und schreiben Sie:
vim ~/.bashrc
Drücken Sie anschließend auf der Tastatur „i“ und definieren Sie die Variable wie folgt:
Test_MyVariable='Tessst'
export Test_MyVariable
PATH=$PATH:Test_MyVariable/bin
Dann:wq
nach $echo sehe ich die Variable:
echo $Test_MyVariable
und es gibt zurück:
Tesst
aber in meinem erhabenen Text gibt es „None“ zurück.
import os
new_v= os.environ.get('Test_MyVariable')
print(new_v)
Keiner
Ich habe sogar alle verfügbaren os.environ geprüft, kann aber meine nicht finden Test_MyVariable
. Außerdem habe ich es auch mit ~/.bash_profile
und versucht ~/.profile
und ihnen eine Variable hinzugefügt, aber das gleiche Ergebnis. Können Sie mir bitte sagen, was ich falsch mache?
Antwort1
Wenn Sie eine Variable in definieren ~/.bashrc
, ist diese Variable vorhanden, sobald ~/.bashrc
sie „gesourced“ (gelesen) wird. Dies geschieht nur, wenn Sie eine neue Shell starten (z. B. wenn Sie ein neues Terminal öffnen).
Wenn Sie also die neue Zeile zu Ihrer .bashrc
Datei hinzufügen, müssen Sie ein neues Terminal öffnen und dort Ihr Python-Skript ausführen. Alternativ können Sie source ~/.bashrc
es in der aktuellen Shell ausführen.
Sie erwähnen Sublime, erklären aber nicht wirklich, warum das relevant ist. Ich gehe also davon aus, dass Sie Ihr Python-Skript irgendwie im Sublime-Editor ausführen. Vermutlich verfügt dieser über eine Art Shell-Emulator. Wenn dies der Fall ist, hängen die Details, wie und wo die Variable definiert wird, davon ab, wie Sublime seine Shell einrichtet. Versuchen Sie Folgendes:
Schließen Sie einfach das Sublime-Fenster, öffnen Sie es erneut und prüfen Sie, ob Ihre Datei jetzt erneut gelesen wurde
.bashrc
.Es kann durchaus sein, dass Sublime
.bashrc
überhaupt nicht liest. Wenn Sie Sublime über eine GUI-Schaltfläche ausführen, müssen Sie sich wahrscheinlich abmelden und erneut anmelden, bevor die Variablen erneut gelesen werden können.Versuchen Sie, ein neues Terminal zu öffnen und auszuführen
sublime
(oder wie auch immer der Befehlsname zum Starten von Sublime von der Befehlszeile lautet). Wird die Variable dann angezeigt?