GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser l'exportation avec Python sous Linux

Vous voulez vraiment faire

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

Pas si simple :

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

Mais :

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

Une autre façon de procéder, si vous êtes pressé et que l'arrière-goût du hacky ne vous dérange pas, consiste à exécuter la sortie du script python dans votre environnement bash et à imprimer les commandes pour exécuter la configuration de l'environnement en python. Pas idéal, mais il peut faire le travail en un clin d'œil. Ce n'est pas très portable d'un shell à l'autre, donc YMMV.

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

(vous pouvez également entourer l'instruction de backticks dans certains shells ``)


export est une commande que vous donnez directement au shell (par exemple bash ), pour lui dire d'ajouter ou de modifier une de ses variables d'environnement. Vous ne pouvez pas modifier l'environnement de votre shell à partir d'un processus enfant (tel que Python), ce n'est tout simplement pas possible.

Voici ce qui se passe lorsque vous essayez os.system('export MY_DATA="my_export"') ...

/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

Lorsque le /bin/sh le plus bas le sous-processus termine l'exécution de votre export ... commande, puis elle est supprimée, ainsi que l'environnement que vous venez de modifier.


Linux
  1. Comment j'utilise Vagrant avec libvirt

  2. Comment j'utilise cron sous Linux

  3. Comment utiliser la commande Su sous Linux

  4. Commande SCP sous Linux :comment l'utiliser, avec des exemples

  5. Comment utiliser Python pour interroger WMI (Linux - Windows)

Comment utiliser la commande Linux sleep avec des exemples

Comment utiliser la commande who sous Linux avec des exemples

Commande d'alias Linux :comment l'utiliser avec des exemples

Comment utiliser la commande Linux gunzip avec des exemples

Comment utiliser la commande Linux rm avec des exemples

Comment installer et utiliser Python-Mistune sous Linux