パスが必要なプログラムフォルダがあります。
export RBT_ROOT=/path/to/installation/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RBT_ROOT/lib
export PATH=$PATH:$RBT_ROOT/bin
次に、コマンドが実行されます。
rbcavity -was -d -r <PRMFILE>
rbcavity-プログラムのbinフォルダに含まれているexeプログラムです
PRMFILE-現在のパスに含まれているプログラムです(プログラムフォルダーに含まれていない作業フォルダー)
これはコマンドラインからは機能しますが、Pythonからは機能しません。Pythonスクリプト(3.5)からこれを実行するにはどうすればよいですか?subprocess.runを試しましたが、コマンドrbcavityが見つかりません... Linuxは初めてで、どのように機能するのかよくわかりません。
この線
subprocess.run(["export", "PATH=$PATH:$RBT_ROOT/bin"], shell=True)
PATH
サブプロセス(およびその子プロセスがある場合はその子プロセス)に環境変数のみを設定します。したがって、Pythonプログラムでは変更されていないため、実行可能ファイルが見つかりませんでした。
Pythonで環境変数を設定するには、を使用しますos.setenv
。つまり、
rbt_root='/path/to/installation/'
path = os.getenv('PATH')
path += ':'+rbt_root+'bin'
os.setenv('PATH',path)
編集:
だから、それはos.setenv
あまりポータブルではないことがわかりました。代わりに、os.environ
辞書のようなを使用してください。例えば、
os.environ['PATH'] = path
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加