【Python源码保护】02 - pyc

本文介绍了Python的编译流程,包括如何将.py文件编译为.pyc以提高执行效率,以及如何使用uncompyle6反编译.pyc回溯到.py。特别提到mpy_compile工具的使用方法和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.py
	package/
		__init__.py
		test.py

将整个文件夹内的文件编译:python -m compileall -f -b .

请添加图片描述

项目目录变成:

pyc-test/
	main.py
	main.pyc
	package/
		__init__.py
		__init__.pyc
		test.py
		test.pyc

将其中的py文件去掉,只保留pyc即可部署:

pyc-test/
	main.pyc
	package/
		__init__.pyc
		test.pyc

查看帮助命令 python -m compileall -h

3. pyc反编译为py

使用uncompyle6可以将pyc反编译为py,参考地址:https://github.com/rocky/python-uncompyle6/

目前仅支持python3.8以下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值