私は、別のスクリプトのために、subprocess.Popenコールを使ってUbuntuの下でpythonpathを準備しようとしています。 Python estimatekeleton.pyの呼び出しは正常に動作します。しかし、Pythonパスを準備する必要があるので、インポートする必要のある他のスクリプトを見つけることができないため、完全には正しく動作しません。 export PYTHONPATHコマンドはcommands.getoutputで機能しました。しかし、commands.getoutputを使用すると、estimatedkeletonスクリプトはまだ動作しません。インポートする必要のある他のファイルを見つけることができません。私は検索機能との適切な解決策を見つけることができませんでしたPython Subprocess Popen LinuxでPythonパスを準備する
OSError: [Errno 2] No such file or directory
:subprocess.Popen経由でPYTHONPATHをエクスポートする私の試みは、エラー番号2になりました。だから私はこのボードのより高度なユーザーの一人がexport
はビルトインシェルであるため、
import subprocess as sub
import os
import commands
proc = sub.Popen(["export", "PYTHONPATH=\"${PYTHONPATH}:/media/sf_myFolder/Scripts/code/\""],
stdout=sub.PIPE,
stderr=sub.STDOUT)
print proc.communicate()[0]
proc2 = sub.Popen(["python", "estimateskeleton.py"],
stdout=sub.PIPE,
stderr=sub.STDOUT)
print proc2.communicate()[0]
PYTHONPATH
に追加されたフォルダで実行されを:
ので、代わりの最初の無用Popen
実行するには、次のようなos.putenv()
を使用してPYTHONPATH
を既存のパスを追加することができます、 どうもありがとう!それは本当に役に立ち、私の問題を解決しました。私は – PythonBeginnerにできるだけ早くそれを正確に評価するでしょう、あなたはすでに答えを受け入れることができます。 –
'shell = True'を使用しているので、より簡単な方法は、起動したシェルのenv varを更新する単一のコマンドを直接発行することです:' PYTHONPATH = $ PYHTONPATH:something_else command args'。 – 9000