1. 什么是 .pyc文件
.pyc文件 就是 Python的字节码(byte-compiled)文件。.py文件运行时,python会自动将其编译成PyCodeObject
并写入.pyc文件,再有python虚拟机来执行PyCodeObject
2. 什么时候会生成pyc文件
当 一个模块 被 import 时,或者 .py文件(非top level script)被修改后,则会自动生成.pyc文件,目的是为了加快下次的运行速度。
.pyc文件不会被建立的一个原因,就是没有当前.py文件目录的权限。
python3 会生成一个 __pycache__
目录,里面就包含pyc文件,一般的命名方式是:文件名.cpython-37.pyc
,其中cpython-37
是python版本号。
2.1 pyc什么时候会重新生成
• 在生成.pyc文件的同时,会写入了一个Long型的变量,用于记录最近修改的时间。 • 每次载入之前都先检查一下.py文件和.pyc文件的最后修改日期,如果一直,则会读取.pyc文件,否则会读取.py文件
3. 如何删除已有的.pyc文件
find /dir_path -name "*.pyc" | xargs rm -rf
4. 如何手动生成.pyc文件
方法一 参数形式
python -m py_compile target.py
方法二 导入模块
import py_compile
py_compile.compile('target.py')
方法三 编译所有的.py文件
python -m compileall .
5. 如何阻止生成.pyc文件
方法一 -B 参数
使用 -B 参数
python -B target.py
方法二 设置环境变量
export PYTHONDONTWRITEBYTECODE=1
方法三 参数设置
import sys
sys.dont_write_bytecode = True