我正在按照 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
最佳答案
当导入模块时,Python 将缓存字节码,因此不需要重新解析文件。缓存的字节码位于 __pycache__
文件夹中。 multiprocessing
隐式导入您的模块,因此它会被缓存。可以安全地忽略它,因为 Python 很聪明,如果它过时就不会使用它。如果您确实不希望它到处创建这些目录和文件,请将环境变量PYTHONDONTWRITEBYTECODE
设置为1
。
关于python - 为什么我的 Python 3 代码会自行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16247984/