首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么是__pycache__?

什么是__pycache__?
EN

Stack Overflow用户
提问于 2013-06-01 12:24:24
回答 5查看 415.8K关注 0票数 868

据我所知,缓存是类似文件的加密文件。

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

EN

回答 5

Stack Overflow用户

发布于 2013-06-01 12:31:42

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

作为一个程序员,你可以忽略它……它所做的就是让你的程序启动得更快一点。当您的脚本更改时,它们将被重新编译,如果您删除这些文件或整个文件夹并再次运行您的程序,它们将重新出现(除非您专门禁止该行为)。

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

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

代码语言:javascript
复制
python -B foo.py

正如tcaswell所指出的,另一个选项是将环境变量PYTHONDONTWRITEBYTECODE设置为任何值(根据python的手册页,任何“非空字符串”)。

票数 737
EN

Stack Overflow用户

发布于 2018-02-18 04:49:42

当您使用以下代码行时,将创建一个__pycache__文件夹:

代码语言:javascript
复制
import file_name

或者尝试从您创建的另一个文件中获取信息。这使得在第二次运行程序打开另一个文件时速度会更快一些。

票数 62
EN

Stack Overflow用户

发布于 2018-06-21 15:05:54

python解释器编译*.py脚本文件,并将编译结果保存到python目录。

当项目再次执行时,如果解释器发现*.py脚本未被修改,它将跳过编译步骤,并运行先前生成的存储在__pycache__文件夹中的*.pyc文件。

当项目比较复杂时,可以缩短项目运行前的准备时间。如果程序太小,您可以使用带有B选项的python -B abc.py忽略它。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16869024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档