2013-04-27 58 views
2

我正在關注Python 3 Docs來學習多重處理,但我注意到了一些我以前沒注意過的奇怪東西。運行腳本後,代碼將被編譯爲「pycache」目錄中的獨立工作二進制文件。有人可以向我解釋這個嗎? 我使用Windows 8和Python 3.3(如果它很重要)(兩者都是AMD64)。謝謝。爲什麼我的Python 3代碼自己編譯?

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

回答

2

當一個模塊導入,Python將緩存字節碼,因此不需要重新分析文件。高速緩存的字節碼進入__pycache__文件夾。 multiprocessing隱式導入您的模塊,因此它被緩存。它可以安全地忽略,因爲Python很聰明,如果它過時了,它就不會使用它。如果您真的想要不希望它在各處製作這些目錄和文件,請將環境變量PYTHONDONTWRITEBYTECODE設置爲1

+0

非常感謝。短而簡單的回答:) – ever99 2013-04-27 03:34:35