2

Multiprocessing を学ぶために Python 3 のドキュメントをたどっていたのですが、今まで気づかなかった奇妙なことに気付きました。スクリプトを実行した後、コードは「 pycache」ディレクトリで動作するスタンドアロン バイナリにコンパイルされます。誰かが私にこれを説明してもらえますか? 問題がある場合は、Windows 8とPython 3.3を使用しています(両方ともAMD64)。ありがとうございました。

from multiprocessing import Process

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

if __name__ == '__main__':
    for i in range(5):
        p = Process(target=f, args=('bob',))
        p.start()
        p.join()
    input() #Added this so that I can see my results.

私がフォローしていたチュートリアル: http://docs.python.org/3.3/library/multiprocessing.html

4

1 に答える 1

2

モジュールがインポートされると、Python はバイトコードをキャッシュするため、ファイルを再解析する必要はありません。キャッシュされたバイトコードは__pycache__フォルダーに入れられます。multiprocessing暗黙的にモジュールをインポートするため、キャッシュされます。Python はスマートで、古い場合は使用しないため、安全に無視できます。これらのディレクトリとファイルをどこにでも作成したくない場合は、環境変数を に設定PYTHONDONTWRITEBYTECODEます1

于 2013-04-27T03:21:56.823 に答える