2011-11-07 16 views
2

Linuxの&ウィンドウボックスでpythonバージョン2.7.2を実行しています。 multiprocessing.Processを使って子プロセスを生成するスクリプトを実行していて、それが欲望のタスク&を待ってから最後に終了します。これはLinux上で正常に動作しますが、ウィンドウ上ではprocess.startを実行している間にエラーが発生しています。 Windowsシステム上のProcess.startがウィンドウで動作しない

pobj = Process(target = foo, args=(bar,)) 
pobj.start() 

エラー:

WindowsError: [Error 2] The system cannot find the file specified 

は、私はいくつかの基本的なデバッグを行なったし、エラーがC」から来ているが見つかりました: は、次のサンプルコードスニペットです\ Python27 \ Libの\マルチプロセッシング\ forking.py "file line no 255.

答えて

3

Windowsにはfork()システムコールがないので、multiprocessingモジュールは処理をフォークするために黒い魔法を必要とします。基本的には、プログラムへのエントリポイントを推測し、forkが発生する前に実行されたすべてのコードをスキップします。詳細についてはthe platform-specific documentationを参照してください -

は、おそらくあなたは、コードをWindows上で動作するために必要である、コード、内

if __name__ == '__main__': 

ガードが含まれていませんでした。

+1

Thanks Sven、私の場合このスニペットは別のモジュールにあり、 "if __name__ == '__main__':"というメインスクリプトから呼び出されています。 – Rohit

関連する問題