将python脚本打包为exe可执行文件
Posted python阿元
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将python脚本打包为exe可执行文件相关的知识,希望对你有一定的参考价值。
技术背景
在很多情况下,编程人员是在Linux环境下完成的编程任务,但是更多的使用人员是在Windows环境下的,比方说,在参考链接1的文章中提到:
那么我们就不得不考虑一个环境转化的问题。python作为一门通用编程语言,本身可以在不同的环境下运行,但可执行文件不是。就目前来说,最便捷的方法还是在各自的平台上去用pyinstaller编译可执行文件。
编写python脚本
当我们编译可执行文件时,首先我们需要一个可以执行的python任务脚本,这个脚本的内容可以是一系列复杂的运算,可以是显示一张图片,也可以是一整个完整的PC端软件。这里我们所写的一个任务是,用numpy创建一个离散的正弦函数图像,然后使用matplotlib将其展示出来:
# plot.py import numpy as np import matplotlib.pyplot as plt x = np.linspace(0,10,1000) y = np.sin(x) plt.figure() plt.plot(x,y,'o',color='green') plt.show()
需要注意的是,如果是创建的python脚本中依赖于一些打印输出函数,那在编译可执行文件时需要指定弹出终端窗口,否则程序没办法正确执行。
安装pyinstaller并编译可执行文件
pyinstaller也是一个跨平台的python工具,在windows和linux上面都可以使用pip来进行安装和管理:
python3 -m pip install pyinstaller
先以linux平台为例,安装pyinstaller成功之后,可以直接执行如下指令对python脚本进行编译:
$ pyinstaller -F plot.py ... $ ll total 24 drwxr-xr-x 4 dechin dechin 4096 Apr 20 14:26 ./ drwxr-xr-x 4 dechin dechin 4096 Apr 19 22:31 ../ drwxr-xr-x 3 dechin dechin 4096 Apr 20 14:26 build/ drwxr-xr-x 2 dechin dechin 4096 Apr 20 14:28 dist/ -rw-r--r-- 1 dechin dechin 160 Apr 20 14:21 plot.py -rw-r--r-- 1 dechin dechin 808 Apr 20 14:26 plot.spec $ ll dist/ total 264376 drwxr-xr-x 2 dechin dechin 4096 Apr 20 14:28 ./ drwxr-xr-x 4 dechin dechin 4096 Apr 20 14:26 ../ -rwxr-xr-x 1 dechin dechin 270710928 Apr 20 14:28 plot*
我们可以看到,编译成功后,在当前的路径下回生成build和dist文件夹,其中可执行文件就放在dist路径下。在linux下可以直接使用 ./plot
的指令来运行该可执行文件,效果如下:
关于pyinstaller的指令,常用的还有指定弹出终端窗口的指令(用于输出程序打印内容)以及程序显示logo的指令(一般为ico文件):
pyinstaller -F -w plot.py # 弹出黑色对话框 pyinstaller -F -i ico_file.ico plot.py # 指定显示图标
在linux环境下完成编译后,我们可以看到生成的可执行文件也只能在linux环境下运行。为了生成windows环境下可以运行的exe可执行文件,我们切换到windows系统下来运行:
Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2022/4/20 14:28 dist d----- 2022/4/20 14:26 build ------ 2022/4/20 14:26 808 plot.spec ------ 2022/4/20 14:21 160 plot.py PS > pyinstaller -F .\\plot.py ... 47314 INFO: Appending PKG archive to EXE 62696 INFO: Building EXE from EXE-00.toc completed successfully. PS > ls .\\dist\\ 目录: \\\\wsl.localhost\\Ubuntu-18.04\\home\\dechin\\projects\\project0331\\dist Mode LastWriteTime Length Name ---- ------------- ------ ---- ------ 2022/4/20 14:28 270710928 plot ------ 2022/4/20 14:40 36811075 plot.exe
也是同样的运行方法,编译完成后在dist文件夹下生成了一个新的可执行文件 plot.exe
,执行效果如下:
在windows环境下运行软件经常会弹出一些窗口,我们直接放行就好了:
可以看到,虽然跟linux下可执行文件的运行结果,在视觉效果上略有差异,但基本上还是大同小异。
总结概要
在完成一个软件或者程序的实现之后,最后的一步就是发布,发布的目的是为了让更多的人来使用这个项目,而大部分的人是没有相应的编程环境的,因此我们必须考虑将代码编译成各个平台的可执行文件,再发布给用户去使用。本文主要介绍通过pyinstaller在linux和windows上分别打包python脚本为可执行文件,想要跨平台的编译软件就目前而言实现起来还比较困难,博主本地使用的是Win11+WSL2 Ubuntu Linux的环境,能够在一定的程度上解决跨平台发布的问题。
Python利用pyinstaller工具将py文件打包成.exe可执行文件
最近由于项目需要,我需要做一个统计的脚本,脚本完成后最终会生成一个统计的excel文件,
为了让使用的人不用安装python环境就可以使用这个统计工具(使用的人几乎没有代码能力),需要将我的脚本打包成.exe可执行文件,只要点一下就可以完成统计并自动生成报表。
废话不多说,开整
一、准备工作python3.7+pyinstaller+ico图片+脚本py文件
这其中最主要的就是安装好pyinstaller,如果连接外网的话,直接pip install pyinstaller就可以了,这里要教一下大家没有外网的情况下,如何安装,你需要如下文件
PyInstaller-3.6.tar.gz
pefile-2019.4.18.tar
altgraph-0.17-py2.py3-none-any.whl
future-0.18.2.tar.gz
pywin32_ctypes-0.2.0-py2.py3-none-any
百度云链接:https://pan.baidu.com/s/1DhuzIOhrviiYIMY4k_6wMQ
提取码:5210
压缩包的直接解压,然后进入到解压文件夹,cmd下运行命令python setup.py install
whl文件直接运行pip install xxx.whl (xxx就是文件名)
------------------------------------------------------------------------
打包前,你还需要一个最后生成的exe的图标,就是一个ico格式的图片,放到你的py文件的目录下,推荐一个免费的制作网址(这里顶一下作者)http://www.ico51.cn/
到这里准备工作已完成,开工!!
进入到你的py文件的目录,运行cmd命令
pyinstaller -F -i 1.ico 2.py (1.ico中的1是你的ico的名字,2.py的2是你py文件的名字,自己别忘记修改)
运行完后,会生成一个dist的目录,这个目录下就是你的exe文件,左键双击运行一下吧!!
以上是关于将python脚本打包为exe可执行文件的主要内容,如果未能解决你的问题,请参考以下文章
python 学习如何将Python脚本打包成可执行的exe文件#520表白代码