GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie den Export mit Python unter Linux

Sie tatsächlich tun möchten

import os
os.environ["MY_DATA"] = "my_export"

Gar nicht so einfach:

python -c "import os; os.putenv('MY_DATA','1233')"
$ echo $MY_DATA # <- empty

Aber:

python -c "import os; os.putenv('MY_DATA','123'); os.system('bash')"
$ echo $MY_DATA #<- 123

Wenn Sie es eilig haben und den Hacky-Nachgeschmack nicht stören, können Sie dies auch tun, indem Sie die Ausgabe des Python-Skripts in Ihrer Bash-Umgebung ausführen und die auszuführenden Befehle zum Einstellen der Umgebung in Python ausdrucken. Nicht ideal, aber es kann die Arbeit im Handumdrehen erledigen. Es ist nicht sehr portabel zwischen Shells, also YMMV.

$(python -c 'print "export MY_DATA=my_export"')

(Sie können die Anweisung in manchen Shells auch in Backticks einschließen ``)


export ist ein Befehl, den Sie direkt an die Shell geben (z. B. bash ), um es anzuweisen, eine seiner Umgebungsvariablen hinzuzufügen oder zu ändern. Sie können die Umgebung Ihrer Shell nicht von einem untergeordneten Prozess (wie Python) aus ändern, es ist einfach nicht möglich.

Folgendes passiert, wenn Sie os.system('export MY_DATA="my_export"') versuchen ...

/bin/bash process, command `python yourscript.py` forks python subprocess
 |_
   /usr/bin/python process, command `os.system()` forks /bin/sh subprocess
    |_
      /bin/sh process, command `export ...` changes its local environment

Wenn die unterste /bin/sh Unterprozess beendet die Ausführung Ihres export ... Befehl, dann wird es verworfen, zusammen mit der Umgebung, die Sie gerade geändert haben.


Linux
  1. Wie ich Vagrant mit libvirt verwende

  2. So verwenden Sie den Su-Befehl unter Linux

  3. SCP-Befehl in Linux:Verwendung mit Beispielen

  4. So verwenden Sie Shared Memory mit Linux in C

  5. Wie kann ich einen Warndialog mit Python unter Linux verwenden?

So verwenden Sie den Linux-Schlafbefehl mit Beispielen

So verwenden Sie den who-Befehl in Linux mit Beispielen

Linux-Alias-Befehl:Verwendung mit Beispielen

So verwenden Sie den Gunzip-Befehl unter Linux mit Beispielen

So verwenden Sie den Linux-rm-Befehl mit Beispielen

So installieren und verwenden Sie Python-Mistune unter Linux