PyInstall的安装,使用,以及最后打包成一个exe文件

简介: PyInstall的安装,使用,以及最后打包成一个exe文件

首先PyInstall安装

pip3 install pyinstaller -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com


打包常用命令

pyinstaller -w -F test.py

-w 表示运行exe文件后不出现cmd命令窗口

-F 表示打包成一个单独的exe文件

使用命令后会生成两个文件夹。



生成的exe文件会存放在dist文件夹下面。并且生成的同目录级别的spec是中间文件,不用太关心。

打包成单个exe文件,并包含其它静态资源


这块可是费劲心思,采用了很多方法都以失败告终。我以最简单的方式来解释。最后的最后讲原理。


我们先生成上面讲到的中间文件 .spec

pyi-makespec XXXXX.py

你看我这里需要的静态资源放在 resources目录下


这时候,修改中间文件,.spec,添加datas里面的数据,把当前目录的resources文件夹的内容 包含进去,命名为 resources。


同时也要注意修改console=False防止出现黑窗口


那我们代码应该怎么使用呢?保证打包前和打包后都能正常运行


我引用路径是这么引用的


添加了resource_path方法如下

def resource_path(relative_path):
    if getattr(sys, 'frozen', False): #是否Bundle Resource
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

原理解释:

我们打包生成前后,os.path.join方法指向的路径是不一样的。

打包前,是本地路径下的resources路面

打包后,是C:\Users\dell\AppData\Local\Temp_MEI443002下的resources目录


默认我们在打包后,C:\Users\dell\AppData\Local\Temp_MEI443002后是不存在我们自己静态资源resources目录的。

但是修改了中间文件.spec后,讲datas中添加了 我们本地的resources目录。于是我们运行exe后,它会自己在C:\Users\dell\AppData\Local\Temp_MEI443002下生成一个我们打包前引入的resources目录。于是运行单个exe后,也会包含我们自己定义的静态资源。


相关文章
|
5天前
|
C语言
C的编译命令 | .o .s .exe .c文件
C的编译命令 | .o .s .exe .c文件
7 0
|
5月前
|
Linux UED iOS开发
[√]pyinstaller打包的exe运行报错,找不到库
[√]pyinstaller打包的exe运行报错,找不到库
155 0
|
8月前
|
存储 C++
VisualStudio打包项目文件为.exe安装包
注意事项:打包项目前,确保项目能正常运行,不然打包毫无意义。
86 0
|
区块链 Python
pyinstaller打包exe
pyinstaller打包exe
108 0
pyinstaller打包exe
|
SQL 算法 区块链
pyinstaller打包exe(详细教程)
当你想把你做的python游戏或者是脚本等.py文件发给别人时,打包为.exe文件,即使对方没有安装python也能运行
657 0
pyinstaller打包exe(详细教程)
|
C++ Windows
QT5的程序打包发布(打包成exe可执行程序)
QT5的程序打包发布(打包成exe可执行程序)
444 0
QT5的程序打包发布(打包成exe可执行程序)
|
Java 区块链
使用 exe4j 将 jar 包生成 .exe 文件(敲详细)
使用 exe4j 将 jar 包生成 .exe 文件
294 0
使用 exe4j 将 jar 包生成 .exe 文件(敲详细)
|
C# C++
C#如何打包EXE程序生成setup安装文件
项目结束之后,有需要将winForm程序打包成.exe文件提供给用户。这里记录一下打包过程。
1744 0
C#如何打包EXE程序生成setup安装文件
|
存储 区块链 Python
一次学会两种方式将 pyton 打成 exe
python 可以做网站应用,也可以做客户端应用。但是客户端应用需要运行 py 脚本,如果用户不懂 python 就是一件比较麻烦的事情。幸好 pyton 有第三方模块可以将脚本可以转成 exe 执行。
166 0
一次学会两种方式将 pyton 打成 exe
|
安全 C++ Python
打包py文件为exe应用详细讲解
打包py文件为exe应用详细讲解
115 0
打包py文件为exe应用详细讲解