据我所知,缓存是类似文件的加密文件。
我们该如何处理__pycache__
文件夹?它是我们提供给人们的东西而不是我们的源代码吗?这只是我的输入数据吗?这个文件夹一直在被创建,它是用来做什么的?
发布于 2013-06-01 12:31:42
当您在python中运行程序时,解释器首先将其编译为字节码(这是一种过度简化),并将其存储在__pycache__
文件夹中。如果你查看那里,你会发现在你的项目文件夹中有一堆文件共享.py文件的名称,只有它们的扩展名是.pyc或.pyo。它们分别是程序文件的字节码编译版本和优化字节码编译版本。
作为一个程序员,你可以忽略它……它所做的就是让你的程序启动得更快一点。当您的脚本更改时,它们将被重新编译,如果您删除这些文件或整个文件夹并再次运行您的程序,它们将重新出现(除非您专门禁止该行为)。
当您将代码发送给其他人时,通常的做法是删除该文件夹,但您是否这样做并不重要。当您使用版本控制(git
)时,此文件夹通常会在忽略文件(.gitignore
)中列出,因此不会包含在其中。
如果您使用的是cpython (这是最常见的,因为它是参考实现),并且您不想要这个文件夹,那么可以通过使用-B标志启动解释器来禁止它,例如
python -B foo.py
正如tcaswell所指出的,另一个选项是将环境变量PYTHONDONTWRITEBYTECODE
设置为任何值(根据python的手册页,任何“非空字符串”)。
发布于 2018-02-18 04:49:42
当您使用以下代码行时,将创建一个__pycache__
文件夹:
import file_name
或者尝试从您创建的另一个文件中获取信息。这使得在第二次运行程序打开另一个文件时速度会更快一些。
发布于 2018-06-21 15:05:54
python解释器编译*.py脚本文件,并将编译结果保存到python目录。
当项目再次执行时,如果解释器发现*.py脚本未被修改,它将跳过编译步骤,并运行先前生成的存储在__pycache__
文件夹中的*.pyc文件。
当项目比较复杂时,可以缩短项目运行前的准备时间。如果程序太小,您可以使用带有B
选项的python -B abc.py
忽略它。
https://stackoverflow.com/questions/16869024
复制相似问题