【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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!