Python将Py编译成Pyc

PYTHON2010-11-21 13:44

Python 其实是有编译的,在执行 py 文件时,Python 程序会将 py 文件编译成 pyo,然后再交由 Python 的虚拟机执行。

编译成 pyo 本质上和 py 没有太大区别,只是对于这个模块的加载速度提高了,而并没有提高代码的执行速度,所以通常情况下不用主动编译 py 文件。

但编译成 pyo 后可以隐藏源代码,就像 C 用 GCC 编译后生成的文件一样。不过,实际上有反编译 Python 的程序(执行cat some.pyc就能看到字符串)。

编译单独的 py 文件:
python -O -m py_compile vzHelloWorld.py

编译某一目录下的所有 py 文件:
python -O -m compileall /home/icyomik/Python/

附注:
命令中没有用到compile(),这是因为py_compile模块的main()函数调用了compile()

-m 表示把后面的模块当成脚本来运行
-O 优化字节码(没有该参数则生成PYC)
-OO 表示优化的同时并删除掉文档字符串


原文链接: http://blog.jtwo.me/python-compile-py-into-pyc