python运行pyc文件_Python pyc文件[通俗易懂]

python运行pyc文件_Python pyc文件[通俗易懂]什么是pyc文件pyc是由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的。pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同。为什么需要pyc文件…

大家好,又见面了,我是你们的朋友全栈君。

什么是pyc文件

pyc 是由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python 的虚 拟机来执行的。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同。

为什么需要pyc文件

这个需求太明显了,因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄漏出去吧?所以就需要编译为pyc后,再发布出去。

pycodeobject与pyc文件关系

class A :

pass

def Fun():

pass

a = A()

Fun()

在Python编译完成后,一共会创建3个PyCodeObject对象,一个是对应CodeObject.py的,一个是对应class A这段Code(作用域),而最后一个是对应def Fun这段Code的。每一个PyCodeObject对象中都包含了每一个代码块经过编译后得到的byte code。但是不幸的是,Python在执行完这些byte code后,会销毁PyCodeObject,所以下次再次执行这个.py文件时,Python需要重新编译源代码,创建三个PyCodeObject,然后执行byte code。

很不爽,对不对?Python应该提供一种机制,保存编译的中间结果,即byte code,或者更准确地说,保存PyCodeObject。事实上,Python确实提供了这样一种机制——Pyc文件。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148633.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月16日 上午8:58
下一篇 2022年6月16日 上午8:58


相关推荐

  • 让Firefox支持ActiveX控件「建议收藏」

    让Firefox支持ActiveX控件「建议收藏」让Firefox支持ActiveX控件  疑难集锦字号  我现在用Firefox作为主力浏览器,Firefox下能否支持ActiveX插件?所为对某些包含ActiveX控件的网站并不兼容,不知道怎么做能让Firefox支持ActiveX呢?      答:两种方案:一种是使用IETab这个插件,在Firefox下直接调用IE浏览器内核进行浏览;      另一种是使

    2022年5月14日
    334
  • html左侧浮动广告代码,jQuery 浮动广告实现代码[通俗易懂]

    html左侧浮动广告代码,jQuery 浮动广告实现代码[通俗易懂]实现方法:浮动广告#qqonline{background-color:red;border:1pxsolid#fcc;position:absolute;top:100px;left:16px;width:100px;height:120px;}#qqonline1{background-color:red;border:1pxsolid#fcc;position:absolute;…

    2026年1月31日
    4
  • Pycharm快速(批量)替换某个字符(单词)

    Pycharm快速(批量)替换某个字符(单词)Pycharm 中快速替换某个变量 某个字符可以使用 Ctrl R 的快捷键来快速替换可以点击 Replaceall 来替换所有的匹配到的字符 如果要替换成空的 那么下面的输入框什么也不要输就可以

    2026年3月16日
    2
  • windows C++ 网络编程

    windows C++ 网络编程一 什么是 Socketsocket 即套接字 用于描述地址和端口 是一个通信链的句柄 应用程序通过 socket 向网络发出请求或者回应 sockets 套接字 编程有三种 流式套接字 SOCK STREAM 数据报套接字 SOCK DGRAM 原始套接字 SOCK RAW 前两种较常用 基于 TCP 的 socket 编程是采用的流式套接字

    2026年3月18日
    2
  • “此工作站和主域间的信任关系失败”之解决

    “此工作站和主域间的信任关系失败”之解决某虚拟化的域控制器出现严重故障以至于不可修复 故使用之前 Hyper V 中导出的备份恢复了域控制器 恢复后基本功能正常 但部分工作站登录时提示 此工作站和主域间的信任关系失败 解决方案 0 必须确保故障工作站没有其他的问题 如网络连接故障 DNS 设置错误等 1 在不能登录域的工作站上 使用工作站本地的管理员用户登录系统 2 在工作站上打开 powershell 输入 Reset

    2026年3月18日
    1
  • 视频直播技术大全、直播架构、技术原理和实现思路方案整理

    视频直播技术大全、直播架构、技术原理和实现思路方案整理本文包括原理篇/思路篇/实践篇/方案篇/前端篇/总结直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的。直播易:已经有各个领域的大牛,封装好了许多牛逼的框架,我们只需要用别人写好的框架,就能快速的搭建一个直播app,也就是传说中的站在大牛肩膀上编程。

    2022年7月24日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号