【Python源码保护】02 - pyc

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/256011.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网工内推 | 国企网工、运维,厂商认证优先,13薪,带薪年假

01 中百集团 招聘岗位:运维工程师 职责描述: 1、对集团内使用云计算架构(Kubernetes)的系统进行规划、运维及管理相关工作。 2、对集团数据中心系统的大数据基础架构(Cloudera Distribution Hadoop)的规划…

在Windows 11中更改文件的扩展名有几种办法,个别办法可以批量修改

本文介绍了如何在Windows 11中更改文件的文件扩展名。 用简单的方法更改文件扩展名 对于大多数人来说,在Windows 11中更改文件扩展名的最简单方法是在更改文件名的同一个地方进行更改。然而,Windows默认情况下不显示文件扩展名,所以在我们可…

『TypeScript』深入理解变量声明、函数定义、类与接口及泛型

📣读完这篇文章里你能收获到 了解TypeScript变量声明与类型注解掌握TypeScript函数与方法的使用掌握TypeScript类与接口的使用掌握TypeScript泛型的应用 文章目录 一、变量声明与类型注解1. 变量声明2. 类型注解3. 类型推断 二、函数与方法定义1. 函数定义2. 方法定…

JDBC常见的几种连接池使用(C3P0、Druid、HikariCP 、DBCP)(附上代码详细讲解)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍JDBC常见的几种连接池使用(C3P0、Druid、HikariCP 、DBCP)以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学…

【实用经验】如何根据CVE编号找到安全补丁

找到对应补丁页面 例如查找编号为 CVE-2019-0708 的漏洞,访问下面链接即可,替换末尾编号可获取其他漏洞更新补丁。 https://msrc.microsoft.com/update-guide/vulnerability/CVE-2019-0708根据实际情况点击右侧补丁链接即可跳转下载 最后根据实际情况下…

高级搜索——ST表,离线RMQ问题

文章目录 前言可重复贡献问题ST表的定义ST表的存储结构ST表的预处理预处理的实现 ST表的区间查询对于k的获取区间查询的实现 OJ链接 前言 对于查询区间最值的方法,我们常用的就是线段树,树状数组,单调队列,而树状数组更适合用于快…

10款必备设计的工具汇总

在当今数字时代,在线绘图软件已经成为创造、设计和表达创造力的重要工具。无论你是专业设计师还是创意爱好者,这些在线绘图软件都将帮助你实现创造力的无限可能性。本文将介绍10个画图设计软件,并分析功能特点、优点,帮助您找到最…

基于Browscap对浏览器工具类优化

项目背景 原有的启动平台公共组件库comm-util的浏览器工具类BrowserUtils是基于UserAgentUtils的,但是该项目最后一个版本发布于 2018/01/24,之至今日23年底,已有5年没有维护更新,会造成最新版本的部分浏览器不能正确获取到浏览器…

机器学习 sklearn 中的超参数搜索方法

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

【Docker二】docker网络模式、网络通信、数据管理

目录 一、docker网络模式: 1、概述 2、docker网络实现原理: 3、docker的网络模式: 3.1、bridge模式: 3.2、host模式: 3.3、container模式: 3.4、none模式: 3.5、自定义网络模式&#xf…

c语言指针详解下

指针下 1 指针与字符串 int main01(){//指针与字符串char a[] "helloworld";//定义了一个字符数组,字符数组内容为helloworld\0//定义一个指针用来保存数组首元素的地址char * p a;printf("%s\n",p);//%s打印一个字符串,要的是首个字符的地址printf(…

MySql概述及其性能说明

MySQL是一种开源的关系型数据库管理系统,由瑞典MySQL AB公司开发,现属于Oracle公司。MySQL是最流行的开源数据库之一,被广泛地应用于Web开发中。MySQL提供了一个高度稳定可靠的数据存储解决方案,同时也可以很容易地跨平台运行。My…