文件类型
- py 源文件
- pyc 编译后的文件
- pyo 优化编译后的文件,可以通过python --help查看-O和-OO了解细节
- pyw GUI模式下源码,调用pythonw.exe执行,如果程序不需要控制台窗口,可以新建一个pyw文件用于调用主pyc程序。pyw中只需要导入pyc程序即可。
- pyd python库
pyc和pyd的区别?
pyc是解释器生成的字节码文件,pyd是优化后的字节码文件,相比pyc,去掉了行号,断言,文档字符串等。
如何生成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