后台-插件-广告管理-内容页广告位一(手机)

您现在的位置是:首页 > 编程语言 > 其他编程其他编程

Pyinstaller原理详解

2021-04-18 18:37:01其他编程人已围观

简介Pyinstaller原理详解
什么是Pyinstaller
Pyinstaller可以把Python程序打包成exe文件,可以在没有Python的电脑上运行,主要用于生产用。
Python.h!
在讲原理之前,我们讲一下pyth

Pyinstaller原理详解

什么是Pyinstaller

Pyinstaller可以把Python程序打包成exe文件,可以在没有Python的电脑上运行,主要用于生产用。

Python.h!

在讲原理之前,我们讲一下python.h这个东东。
众所周知,Python是用C语言编写的,内部各种复杂的API需要python.h这个东西来协调,来封装,这样可以提高代码的可读性。
python.h主要用于编写扩展模块,所以你可以把任意一个Python程序转换成使用python.h的C程序。
基于python.h,才有了Pyinstaller。

主原理

首先我们看了上面的铺垫,知道想转成exe,得先转c。
但对于Python代码的分析是非常复杂的,转成C?!这不得开发个几年才怪呢。
幸好我们不用造轮子,已经有一个名叫Cython的东西出现了。
知道.pyd的原理的都知道,其实pyd=dll≈exe,根据这个表达式可以推出,想编译.pyd,必须先转换Python到C。
所以我们可以直接利用Cython把Python转换成C语言,然后编译。
但是,像是加icon之类的还是要靠自己,所以Pyinstaller也不是完全封装。

另一种思路:字节码?

除了Pyinstaller,在转exe领域还有一条已经累死的黑马:py2exe。
py2exe采用了和Pyinstaller完全不一样的思路,虽然复杂,但是曾经是唯一的选择,也算是经典。
Python是一种动态编译语言,在执行过程中解释器一边运行一边编译下面的代码。(这只是概括,真正的原理贼复杂,别杠,这点足够了)
py2exe背后就是一个被hook了的Python解释器,在执行时,不是运行而是把字节码提供给py2exe,py2exe再把汇编字节码整合在一起,编译输出exe。
这不就是PyPy吗

文章来源:查看

Tags:详解   原理   Pyinstaller

很赞哦! ()

后台-插件-广告管理-内容页广告位二(手机)
后台-插件-广告管理-内容页广告位三(手机)

随机图文

后台-插件-广告管理-内容页广告位四(手机)

文章评论

留言与评论(共有 0 条评论)
   
验证码:

本栏推荐

站点信息

  • 文章统计13614篇文章
  • 浏览统计468次浏览
  • 评论统计1个评论
  • 标签管理标签云
  • 统计数据:统计代码
  • 微信公众号:扫描二维码,关注我们