pyc是解释器生成的字节码文件,pyd是优化后的字节码文件,相比pyc,去掉了行号,断言,文档字符串等。
测试版本:python 2.7.5
测试系统:centos 7.9 1908
测试脚本test.py内容
print("test")
执行结果
python test.py #没有任何文件生成 python -m py_compile test.py #生成pyc文件 python -O test.py 或者python -OO test.py #没有任何文件生成 python -O -m py_compile test.py #生成pyo文件 python -OO -m py_compile test.py #生成pyo文件
import py_compile py_compile.compile("D:\\test.py")
import compileall compileall.compile_dir(dirpath) #dirpath可以是绝对目录,也可以是相对目录
python -m compileall $dir #编译dir目录下的文件
从python3.5开始,__pycache__目录下,就不会再有.pyo文件了
取而代之的是:
python3 -O -m py_compile test.py python3 -OO -m py_compile test.py #结果 test.cpython-36.opt-1.pyc test.cpython-36.opt-2.pyc