什么是 __pycache__?

新手上路,请多包涵

据我了解,缓存是类似文件的加密文件。

我们如何处理 __pycache__ 文件夹?是我们提供给人们的而不是我们的源代码吗?这只是我的输入数据吗?这个文件夹一直在创建,它是做什么用的?

原文由 user2063042 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 456
1 个回答

当您在 Python 中运行程序时,解释器首先将其编译为字节码(这是一种过度简化)并将其存储在 __pycache__ 文件夹中。如果您在那里查看,您会发现一堆文件共享项目文件夹中的 .py 文件的名称,只有它们的扩展名是 .pyc.pyo 。这些分别是程序文件的字节码编译版本和优化字节码编译版本。

作为一名程序员,您基本上可以忽略它……它所做的只是让您的程序启动得更快一些。当您的脚本更改时,它们将被重新编译,如果您删除文件或整个文件夹并再次运行您的程序,它们将重新出现(除非您特别抑制该行为)。

当您将代码发送给其他人时,通常的做法是删除该文件夹,但是您是否这样做并不重要。当您使用版本控制 ( git ) 时,此文件夹通常列在忽略文件 ( .gitignore ) 中,因此不包括在内。

如果您正在使用 CPython(这是最常见的,因为它是参考实现)并且您不想要该文件夹,那么您可以通过使用 -B 标志启动解释器来抑制它,例如

python -B foo.py

如 tcaswell 所述,另一种选择是将环境变量 PYTHONDONTWRITEBYTECODE 设置为任何值(根据 Python 的手册页,任何“非空字符串”)。

原文由 scott_fakename 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题