4

問題があり、問題が何であるかわかりません。埋め込まれたコード(デバッグを試みるための3.2ドキュメントの最も単純なサンプルコード)は、ターゲット関数を実行しません。プロセスが完了し、プログラムがエラーなしでインポートおよび実行され、Python 3.2が正しくインストールされ、ディレクトリがPath環境変数に追加されます。IDLEからf5を使用してプログラムを実行していますが、コードの他のすべてのビットは完全に機能しますが、ターゲット関数'f'(この場合)内のコードは単純に実行されません。ご存知のように、これは非常に苛立たしいことです。このコードは印刷されず、ターゲット関数(および任意の関数)内のすべてのテスト印刷は単純に実行されません。単にスキップされます。

#!/usr/bin/env python
from multiprocessing import Process

def f(name):
    print('hello', name)

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()

何かご意見は?私はWindows7システムでPython3.2を実行しており、マルチプロセッシングはPython 2.7を使用するシステムで正常に実行されています(ただし、私のプロジェクトでは3.2で開発する必要があります)。私が想像するそのような単純な問題はパスの問題であるに違いありませんが、Pythonは確かにパッケージを認識しているので、これを機能させるために何をしなければならないのかわからず、Googleからの解決策を見つけることができませんでした(そしてスペルを間違えると失敗します); 正しく動作しないだけです。ヘルプ/アドバイスをありがとう!

4

1 に答える 1

3

マルチプロセッシングと IDLE はうまく連携しません。IDLE の外で実行されることを確認してください。そうであれば問題ありません。

私自身は IDE を使用していないので、他に提供できるものはありませんが、単純なprints がデバッグにどれほど役立つかは驚くべきことです。

于 2012-10-11T18:59:57.117 に答える