pyinstaller把python代码打包成exe文件
虽然代码很方便,但是执行的时候,至少需要安装了python才行,那别人如果没安装过python,就没办法使用你的python代码实现的功能了
但是!!!如果你把代码打包成一个exe文件,那就非常方便了!
你把对应的依赖都设置好,别人直接就可以用了,而且这个有一点好处,就是你的代码别人是看不到的,更加的安全保密,我是不是很机智 😃
网上查看了很多文章,但是操作起来都稍微有点复杂,经过我的实际操作,发现可以不用高的那么复杂,就可以实现大家的目标
前提
- 项目文件已经准备好了
- 已经安装了Pyinstaller
如果没有安装Pyinstaller,使用以下命令进行安装
pip install Pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
话不多说,我们直接进入正题
打包单个py文件
只是写了个简单的py文件,不需要用到其他的文件,包括自己写的其他py文件、文本文档,图片等,只要有你这个py文件,就可以正常运行,那这种情况下打包是很简单的
pyinstaller -F your_script.py
your_script.py 代表你要打包成exe 的 py文件
-F 表示要把这个py文件打包成单个可执行文件
–onefile 实现的是与 -F 一样的效果,但是不能与-F同时使用
执行命令执行之后,在项目目录下会多两个文件夹,exe文件在 dist 里面
这个是最基本的命令
还有一些其他的命令,简单给大家介绍一下
-w 使用窗口,无控制台
-C 使用控制台,无窗口
-n 文件名 可以指定生成的exe文件名称,很少使用
-i 或者 --icon 可以指定生成的exe文件的图标
给大家展示下我 添加图标和不添加图标的结果
不指定图标,默认的图标是这样子的
指定了exe文件的图标之后,变成了下面这样
(注意: 直接看不会显示更改之后的图标,需要你把文件拖到桌面上一下,或者重命名一下
)
打包单个py文件就到这里,还有很多命令,没有去给大家介绍,知道常用的就差不多了,下面给大家带来多文件打包成一个exe文件的项目
打包多个文件
项目的主文件,需要使用到其他的py文件,或者其他的文件资源,如文本,图片等,只给别人一个主文件,他运行会报错,这个时候就需要把多个文件打包在一起了
一个关键命令要记住: --add-data “src;dest”
需要依赖的自己的文件都可以这么去添加
项目的架构如下:
(我把需要依赖的相似作用的文件放到同一个文件夹了,方便后续命令添加依赖)
project/
│
├── main.py
├── utils/
│ └── util1.py
│ └── util2.py
│ ...
└── data/
│ └── data.csv
│ └── picture.png
│ ...
├── conf.ini
main.py 是项目的主文件
utils文件夹里面有很多主文件依赖的py文件
data文件夹里面也有很多依赖的各种数据
还有一个conf.ini 也是项目依赖的文件
把这么多文件进行打包,该怎么办呢?
看到有的同学是编写spec文件去一个一个把依赖文件写过去的,文件少了还好,如果依赖的文件很多,那就太累了。其实使用我给大家介绍的命令的话会变得非常简单。
上代码
pyinstaller -F --add-data "utils/*;utils/" --add-data "data/*;data/" --add-data "conf.ini;." mian.py
通过这样的命令就可以把有很多依赖的man.py打包成一个 exe文件了,可以正常
这里给大家解释一下命令的参数的作用
-F:指明你想要创建一个单一的exe文件。
–add-data "utils/;utils/":将utils文件夹添加到打包到 exe中,并且保持文件夹结构(即在exe中作为utils文件夹存在)。
–add-data 'data/;data/':将data文件夹中的所有文件添加到打包的exe中,并且保持文件夹结构(即在exe中作为data文件夹存在)。
–add-data “conf.ini;.”:将conf.ini添加到打包的exe中,并且保持文件夹结构(即在exe中作为conf.ini文件存在)。
到这里就给大家介绍完毕了
如果你有任何python问题,都可以加我微信交流哦!
不保证能够解决问题哈,大家一起交流学习