2

タイトルが示すように、Fedora で新しいサブプロセスを開始する際に問題が発生しています。現在の状況は、メインの python スクリプトがあり、そこからいくつかの他の python プロセスを開始します。

import subprocess
subprocess.Popen(['python', '-m', 'first_child.run', 'start'], shell=False)

これで、MacOS、debian、および Windows で問題なく動作します。Fedora で Aptana 3 IDE から実行すると、それも機能します。唯一の問題は、ターミナルからこのメイン スクリプトを実行しようとすると、次のようになります。

OSError: [Errno 2] No such file or directory

ここで何が問題になる可能性があるか考えていますか?

よろしく、 ボグダン

4

2 に答える 2

1

現在の作業ディレクトリです。問題は python が見つからないことではないと思います。問題は、 が見つからないことfirst_child.runです。

サブプロセスを起動する前に印刷してみos.getcwd()て、ターミナルと IDE で違いがあるかどうかを確認してください。

sys.executable余談ですが、単に python と言うのではなく、サブプロセスで使用する python として使用する方がおそらく信頼性が高くなります。例えば、subprocess.Popen([sys.executable, '-m', 'first_child.run', 'start'], shell=False)

于 2012-03-29T15:13:09.370 に答える
1

これがすでに考えられている場合は申し訳ありませんが、サブプロセスの呼び出しによる OSError の最も一般的な原因は、プロセスが見つからないことです。

http://docs.python.org/library/subprocess.html#exceptions

あなたのパスにpythonが絶対にあると確信していますか?

おそらく、このスクリプトを python 実行可能ファイルから実行したことを指摘することになると思いますが、ターミナルから実行したときに python へのフル パスを指定したのではないかと思いました。

楽しみのために、subprocess を呼び出す直前に、PATH をダンプできます。

import os
print os.environ['PATH']
于 2012-03-29T15:04:22.260 に答える