我遵循Python 3文档学习Multiprocessing,但我注意到一些我以前没有注意到的奇怪的东西。运行脚本后,代码将在"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
当一个模块被导入时,Python将缓存字节码,这样它就不需要重新解析文件。缓存的字节码放在__pycache__
文件夹中。multiprocessing
隐式导入模块,因此它被缓存。它可以被安全地忽略,因为Python是智能的,如果它过时了就不会使用它。如果真的不希望它到处生成这些目录和文件,那么将环境变量PYTHONDONTWRITEBYTECODE
设置为1
。