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 Resourcebase_path = sys._MEIPASSelse: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后,也会包含我们自己定义的静态资源。
PyInstall的安装,使用,以及最后打包成一个exe文件相关推荐
- 使用vs2019和pyinstaller将py文件打包成一个exe文件(含图标),pyinstaller安装失败解决方案
1.什么是pyinstaller 参见这篇文章: https://gwj1314.blog.csdn.net/article/details/79775764 PyInstaller是一款可以把py解 ...
- 用py2exe打包成一个exe文件
一.简介py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序. py2ex ...
- 打包SWF和HTML,将多个swf打包成一个EXE文件
在制做一个flash时常常有文件种需导入其它swf文件的情况,这种情况使用flash player打包成EXE文件时,无法将附带的swf文件打进去,这给文件的复制带来了不便.如何将多个swf文件打成一 ...
- nw.js项目用nsis打包成一个exe文件的坑
nsis把nw.js整个项目编译成一个exe包,可以实现分发给客户时,可以给用户更好的体验,但是隐藏着一个坑.也可以说是nw.js本身存在的坑.由于nw.js是基于node.js和chromium的应 ...
- python打包成二进制文件_pyinstall python文件打包成二进制exe文件
pycharm + python3 + win7 1 pip install pyinstall (官网) 2 准备 .py 文件 3 具体例子 from PyQt5.QtWidgets impor ...
- winform把所有dll打包成一个exe
大家都知道做winform开发,是可以利用visual studio进行打包的,但是这种打包的方式需要双击安装,那么有没有什么方法,可以把winform程序打包成绿色版呢?当然,这里的"绿色 ...
- Python selenium —— 将你的自动化脚本打包成一个exe
写好了Python selenium脚本,到其他机器上运行,还得要在其他机器上也装一套Python的环境,尤其在你用了一些第三方库的时候,甚至还要顾及操作系统是32位还是64位,是不是很坑,如果能打成 ...
- 如何将cocos2d-x项目打包成一个.exe
今天在CSDN上看到了一片有趣的博文,没错,他还是关于cocos2d-x的,但不同之处是,这会正对的不是ios又或安卓,而是我们最熟悉的windows,他教会了我如何将一个cocos2d-x编译后产生 ...
- 多个exe打包成一个exe安装程序,安装后可一键启动多个服务
博客帮助我解决了很多问题,于是想把自己遇到的问题记录下来希望对他人有所帮助.有些帖子写得很是简单,一旦忽略了某个关键细节,就可能看不懂了,就要花费更多的时间才能解决问题或者另寻良方,所以我自己尽可能写 ...
最新文章
- Win10 TensorFlow(gpu)安装详解
- 新闻 | 聚焦技术领域现状与发展阿里巴巴知识图谱专场亮相云栖大会 阿里知识图谱亮相云栖大会产学深度交流推进业务创新
- react setState里的作用域
- 3.9 训练一个 Softmax 分类器
- mysql基础操作(二)
- Favorites整理v2011
- C语言:编写函数,通过一个指针将一个字符串反向
- Oracle SQL篇(四)group by 分组与分组的加强 rollup
- KVM 介绍(3):I/O 全虚拟化和准虚拟化 [KVM I/O QEMU Full-Virtualizaiton Para-virtualization]
- Windows环境搭建Red5流媒体服务器指南
- js批量下载图片并压缩打包
- SnapGene快速入门,界面及常用操作教程
- JAVA操作Excel 可配置,动态 生成复杂表头 复杂的中国式报表表头
- 30天学习一部无字幕美剧-《老友记》
- 使用Google镜像构建工具Jib报错:No plugin found for prefix 'jib' ...
- 计算机没有有效的ip配置,win7电脑没有有效的ip配置怎么办
- arcgis 线自动构面的方法一例
- 南卫理公会计算机官网,南卫理工会大学
- 石墨笔记,Ulysses和Effie哪个更适合学生?
- 【时间复杂度】时间复杂度