1. python编译过程
Python虽然是一门解释型语言,但Python程序执行时,也需要将源码进行编译生成字节码,然后由Python虚拟机进行执行,因此Python解释器实际是由两部分组成:编译器
和虚拟机
。
Python程序执行过程和Java类似,都是先将代码编译成字节码,然后由虚拟机执行:
2. py编译为pyc
2.1 编译单个或多个py文件(不建议使用)
python -m py_compile D:\test.py #跟随完整路径,会在需转译文件的目录下生成一个“__pycache__”目录/test.cpython-34.pyc文件python -m py_compile /root/src/{file1,file2}.py #这是同时转换多个文件
2.2 编译项目文件夹中的所有py文件(建议使用)
项目目录:
pyc-test/main.pypackage/__init__.pytest.py
将整个文件夹内的文件编译:python -m compileall -f -b .
项目目录变成:
pyc-test/main.pymain.pycpackage/__init__.py__init__.pyctest.pytest.pyc
将其中的py文件去掉,只保留pyc即可部署:
pyc-test/main.pycpackage/__init__.pyctest.pyc
查看帮助命令 python -m compileall -h
3. pyc反编译为py
使用uncompyle6
可以将pyc反编译为py,参考地址:https://github.com/rocky/python-uncompyle6/
目前仅支持python3.8以下。