GNU/Linux >> Linux の 問題 >  >> Linux

Linux 上の Python で export を使用する方法

あなたは実際にやりたい

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

それほど単純ではありません:

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

ただし:

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

これを行うもう 1 つの方法は、急いで後味が気にならない場合、bash 環境で python スクリプトの出力を実行し、python で環境設定を実行するコマンドを出力することです。理想的ではありませんが、ピンチで仕事を終わらせることができます.シェル間での移植性はあまり高くないため、YMMV.

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

(一部のシェルではステートメントをバッククォートで囲むこともできます ``)


export シェルに直接与えるコマンドです (例:bash )、環境変数の 1 つを追加または変更するように指示します。シェルの環境を子プロセス (Python など) から変更することはできません。それは不可能です。

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

一番下の /bin/sh のとき サブプロセスは export ... の実行を終了します コマンドを実行すると、変更したばかりの環境と共に破棄されます。


Linux
  1. LinuxにPythonをインストールする方法

  2. LinuxでのSCPコマンド:使用方法と例

  3. LinuxでPythonでアラートダイアログを使用するにはどうすればよいですか?

  1. libvirtでVagrantを使用する方法

  2. LinuxでBusyBoxを使用する方法

  3. Linuxでcronを使用する方法

  1. 実用的な例でLinuxHexdumpコマンドを使用する方法

  2. LinuxでSuコマンドを使用する方法

  3. LinuxでPyenvを使用して複数のPythonバージョンを管理する方法