据我了解,缓存是类似文件的加密文件。
我们如何处理 __pycache__
文件夹?是我们提供给人们的而不是我们的源代码吗?这只是我的输入数据吗?这个文件夹一直在创建,它是做什么用的?
原文由 user2063042 发布,翻译遵循 CC BY-SA 4.0 许可协议
据我了解,缓存是类似文件的加密文件。
我们如何处理 __pycache__
文件夹?是我们提供给人们的而不是我们的源代码吗?这只是我的输入数据吗?这个文件夹一直在创建,它是做什么用的?
原文由 user2063042 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
当您在 Python 中运行程序时,解释器首先将其编译为字节码(这是一种过度简化)并将其存储在
__pycache__
文件夹中。如果您在那里查看,您会发现一堆文件共享项目文件夹中的.py
文件的名称,只有它们的扩展名是.pyc
或.pyo
。这些分别是程序文件的字节码编译版本和优化字节码编译版本。作为一名程序员,您基本上可以忽略它……它所做的只是让您的程序启动得更快一些。当您的脚本更改时,它们将被重新编译,如果您删除文件或整个文件夹并再次运行您的程序,它们将重新出现(除非您特别抑制该行为)。
当您将代码发送给其他人时,通常的做法是删除该文件夹,但是您是否这样做并不重要。当您使用版本控制 (
git
) 时,此文件夹通常列在忽略文件 (.gitignore
) 中,因此不包括在内。如果您正在使用 CPython(这是最常见的,因为它是参考实现)并且您不想要该文件夹,那么您可以通过使用 -B 标志启动解释器来抑制它,例如
如 tcaswell 所述,另一种选择是将环境变量
PYTHONDONTWRITEBYTECODE
设置为任何值(根据 Python 的手册页,任何“非空字符串”)。