0
pythonからcshスクリプト(環境変数を作成または更新する)を実行しようとしましたが、環境変数はシェルに戻った後に更新されません。 なぜですか?どうすれば解決できますか?環境変数がPythonから更新されない
subprocess.call('script.csh',shell=True,executable="/bin/csh")
pythonからcshスクリプト(環境変数を作成または更新する)を実行しようとしましたが、環境変数はシェルに戻った後に更新されません。 なぜですか?どうすれば解決できますか?環境変数がPythonから更新されない
subprocess.call('script.csh',shell=True,executable="/bin/csh")
環境変数が文字列でなければならないこと
os.environ['YOUR_VARIABLE'] = "your_value"
注意を使用し、pythonで環境変数を設定します。あなたがやりたいことができない理由のため
説明:
環境変数はプロセスあたりのメモリ空間に設定されています。 bash(またはあなたが持っているシェルがあれば)はプログラムを実行するときにfork()を使います。これは子プロセスなのでbashの変数を継承します。あなたのやろうとしていることは、子プロセスを作成し、@PM 2Ringのように、彼が親から継承するようにすることです。
これはPythonの問題ではありません。親プロセスは子プロセスを継承しません。スクリプトを 'source'しない限り、シェルスクリプトで実行することさえできません。 –
私はtcshを使用します。どういう意味ですか ?回避策を教えてもらえますか? @PM 2Ring – Alex
回避策は、シェルスクリプトに環境変数を設定させ、今実行しようとしている方法ではなくPythonスクリプトを実行することです。あるいは、 'os.environ'を使ってPythonでそれらを設定できます。 – kindall