【Python源码保护】02 - pyc

2023-12-13 20:09:00

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以下。

文章来源:https://blog.csdn.net/WonderThink/article/details/134865567
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。