python安装pyinstaller库,如何使用pyinstaller打包源代码
本文介绍了使用PyInstaller库将Python程序打包成exe的方法,并通过示例代码进行了详细介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。
一、pyinstaller简介
Python是一种由解释器解释和执行的脚本语言。发布方式:
.py文件:对于开源项目或者不是那么重要的源代码,直接提供源代码,用户需要自己安装Python和各种依赖库。(Python的官方安装包就是这么做的)
.pyc文件:有些公司或者个人,因为保密或者各种原因,不希望源代码被运营人员看到,可以使用pyc文件发布。pyc文件是Python解释器识别的二进制代码,所以发布后是跨平台的,用户需要安装相应版本的Python和依赖库。
可执行文件:对于非编码人员或者一些小白用户来说,如果你让他们装Python,折腾一堆依赖库,那就是灾难。对于这类用户,最简单的办法就是提供一个可执行文件,告诉Ta怎么用就行了。问题是不同的可执行文件(Windows,Linux,Mac,)需要针对不同平台进行打包。
本文主要介绍最后一种方法。py和。pyc相对简单,Python本身也能处理。有很多方法可以将Python脚本打包成可执行文件。本文主要关注PyInstaller。
PyInstaller的原理简介
PyInstaller实际上是把python parser和你自己的脚本打包成一个可执行文件,和编译成真正的机器码完全不同。所以不要指望打包成可执行文件会提高运行效率,相反可能会降低运行效率。这样做的好处是你不必在你的机器上安装python和你的脚本所依赖的库。在Linux操作系统下,主要使用binutil工具包中的ldd和objdump命令。
PyInstaller输入你指定的脚本,首先分析脚本所依赖的其他脚本,然后搜索、复制、收集所有相关的脚本,包括Python parser,然后把这些文件放在一个目录中或者打包成一个可执行文件。
需要注意的是,PyInstaller打包的可执行文件只能在与打包机器系统相同的环境中。也就是说不便携。如果需要在不同的系统上运行,就必须针对平台进行打包。
将.py源代码转换成无需源代码的可执行文件
pyInstalller下载网址
二、pyinstaller在windows下的安装
使用命令pip install pyinstaller。
安装pyinstaller
在windows下,pyinstaller需要PyWin32的支持。使用pip安装pyinstaller时找不到PyWin32,将自动安装。
三、打包
打包的应用程序不包含任何源代码,但是。pyc文件的脚本被打包。
基本语法:
pyinstaller选项myscript.py
的常见可选参数如下:
-d -D,- one-dir打包成文件夹,默认情况下,-f -F,- one-file打包成exe文件-p dir,-paths dir。添加一个路径,一般用来添加程序使用的包的位置-c -c,- console,- nowindowed provider窗口。程序有输入输出界面,默认情况下,-w,- windowed,- noconsole没有窗口,程序运行在background-ifile.icoorfile.exe,idorfile.icns,-iconfile . icoor FILE.exe,或者file.icns添加图标图标如py installer-one file-noowed :/pycharmprojects/untitled/hello . py
build文件夹、dist文件夹和。规格文件将在当前文件下形成。
Dist是guess_exe.exe可执行文件。
如果存在打包错误,请参考警告***。txt文档,其中详细记录了错误的原因。一般是图书馆丢了。
Spec文件告诉PyInstaller如何处理脚本。它加密pyinstaller的脚本名和大多数可选参数。PyInstaller通过执行spec文件的内容来构建应用程序。
四、pyinstaller常见错误
用pyinstaller生成exe时报错 TypeError: an integer is required (got type bytes)
TypeError:需要一个整数(得到类型字节)
解决方法:报告错误之前的pyinstaller是用pip install pyinstaller安装的,然后用pipi install 3359 github.com/py installer/py installer/archive/develop . tar . gz再次安装。
关于使用PyInstaller库将Python程序打包成exe的这篇文章到此结束。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。