GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare l'esportazione con Python su Linux

Vuoi davvero fare

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

Non così semplice:

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

Ma:

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

Un altro modo per farlo, se sei di fretta e non ti dispiace il retrogusto hacky, è eseguire l'output dello script python nel tuo ambiente bash e stampare i comandi da eseguire impostando l'ambiente in python. Non è l'ideale, ma può portare a termine il lavoro in un pizzico. Non è molto portabile tra le shell, quindi YMMV.

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

(puoi anche racchiudere l'istruzione tra apici inversi in alcune shell ``)


export è un comando che dai direttamente alla shell (ad esempio bash ), per dirgli di aggiungere o modificare una delle sue variabili di ambiente. Non puoi cambiare l'ambiente della tua shell da un processo figlio (come Python), semplicemente non è possibile.

Ecco cosa succede quando provi 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

Quando il /bin/sh più in basso subprocess termina l'esecuzione del tuo export ... comando, quindi viene scartato, insieme all'ambiente che hai appena modificato.


Linux
  1. Come usare il comando Su in Linux

  2. Comando SCP in Linux:come usarlo, con esempi

  3. Come gestire più versioni di Python con Pyenv su Linux

  4. Come utilizzare Python per eseguire query su WMI (Linux – Windows)

  5. Come utilizzare la memoria condivisa con Linux in C

Come utilizzare il comando sleep di Linux con esempi

Come utilizzare il comando who in Linux con esempi

Comando alias Linux:come usarlo con esempi

Come utilizzare il comando gunzip di Linux con esempi

Come utilizzare il comando Linux rm con esempi

Come installare e utilizzare Python-Mistune su Linux