pyinstaller根据虚拟环境virtualenv进行打包,降低exe文件大小
问题:使用pyinstaller打包后,发现打的exe特别大,有近200M,又没有用几个库,代码也很少,怎么会打出这么大的包呢?
分析:在pyinstaller打包的过程中,可以看到窗口中出现了很多本地其他库的名称,怀疑可能这个打包会把本地所有的库都打进去
解决:使用虚拟环境打包
虚拟环境中,只包含代码运行所需的第三方库,这样就不会用到本地的python环境了
先安装虚拟环境的库
pip3 install virtualenv
步骤:
1、准备一个目录用于放虚拟环境,如project1_virenv
virtualenv project1_virenv
2、进入虚拟环境目录的Scripts文件夹(存放虚拟环境库文件的地方)
cd project1_virenv/Scripts
3、在Scripts目录下激活虚拟环境,此时会进入虚拟环境中
activate
4、在虚拟环境中安装各种库
pip3 install pyinstaller # 用于打包
pip3 install pypiwin32 # 安装pyinstaller相关依赖
pip3 install xxxx # 安装代码所有需要的第三方库
5、将需要打包的代码或文件夹复制到Scripts目录中
6、在虚拟环境中进行打包
pyinstaller -F xxx.py(可输入py文件路径)
7、退出虚拟环境(取消激活)
deactivate
8、打包结束,exe在dist文件夹中
pyinstaller根据虚拟环境virtualenv进行打包,降低exe文件大小的更多相关文章
- python + pyinstaller 实现将python程序打包成exe文件直接运行
pyinstaller 我们在平常学习使用python的时候经常会自己编写一些小程序来使用,虽然python是跨平台的语言,但是如果我们想要在一个没有python以及很多库环境的电脑上使用我们的小程序 ...
- pyinstaller相关问题 & pygame文件打包成exe文件 & 武装飞船 & 飞机大战
自己照书写了一个飞机大战游戏的python程序,想把它打包成一个exe文件,在查阅相关教程并经过数次尝试后终于成功. 安装打包应用 pyinstaller 在cmd命令窗口下pip install p ...
- PyQt(Python+Qt)学习随笔:windows下使用pyinstaller将PyQt文件打包成exe可执行文件
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<windows下使用pyinstaller将多个目录的Pyt ...
- 01.如何把.py文件打包成为exe,重点讲解pyinstaller的用法
1.应用场景 1.1 故事背景 我自己用python写了一个小程序发给其他同事用,给他的就是一个.py文件,不过他觉得比较麻烦,还要安装环境,他问我有没有简单一点的方式,我给一个exe文件,他就不用安 ...
- pyinstaller打包的exe太大?你需要嵌入式python玄学
pyinstaller打包一个exe动辄几十M几百M (特别是import pandas以后) 知乎上居然没有人po这方面的”知识“(手动狗头) 查了很多关于reduce pyinstaller打包出 ...
- Pyinstaller(python打包为exe文件)
需求分析: python脚本如果在没有安装python的机器上不能运行,所以将脚本打包成exe文件,降低脚本对环境的依赖性,同时运行更加迅速. 当然打包的脚本似乎不是在所有的win平台下都能使用, ...
- Pyinstaller (python打包为exe文件)
需求分析: python脚本如果在没有安装python的机器上不能运行,所以将脚本打包成exe文件,降低脚本对环境的依赖性,同时运行更加迅速. 当然打包的脚本似乎不是在所有的win平台下都能使用,wi ...
- PyInstaller打包成exe可执行文件
PyInstaller 安装pyinstaller 对于那些网络比较稳定,能够流畅使用pip源地址的用户,直接下面的命令就可以搞定: pip install pyinstaller 通常我们会下载源码 ...
- 用Pyinstaller打包发布exe应用
有时候编写的Python程序依赖很多,如果要在不同服务器上安装python环境等东西有点得不偿失了.这时候可以使用pyinstaller和py2exe,能够将python程序打包成可执行的exe文件, ...
- pyinstaller 打包生成exe之后运行提示‘no module name 'xxx'’错误
python 3.7 pyinstaller 3.4 具体情况: pycharm中点击运行可成功执行,生成正确结果,没有报错. 双击run.py(程序运行的主文件),运行,可生成正确结果,没有报错. ...
随机推荐
- day14-异常处理
异常处理 1.基本介绍 SpringMVC 通过 HandlerExceptionResolver 处理程序的异常,包括 Handler映射.数据绑定以及目标方法执行时发生的异常 有两种方案来进行异常 ...
- try-catch易错分析
/* * @author YAM */public class Test01 { public static void main(String[] args) { try { showExce(); ...
- Roadblocks
poj3255 题目: Bessie has moved to a small farm and sometimes enjoys returning to visit one of her best ...
- MRI炎症和结构损伤指标对TNF拮抗剂治疗AS患者获持续缓解的预测价值
MRI炎症和结构损伤指标对TNF拮抗剂治疗AS患者获持续缓解的预测价值 EULAR2015; PresentID: OP0043 PREDICTORS OF SUSTAINED REMISSION O ...
- jsHtml解码
//将HTML代码转换为文本 function HTMLDecode(text) { var temp = document.createElement("div"); temp. ...
- 域名_服务器_IP之间的关系
目的: 近期在搞A服务器和云服务器,以及正式环境的B服务器的时候,多次搞不清楚域名,IP的关系. 现在理解看来: IP 分为内网和外网的,以A为例,A是内网的IP,然后申请下来的外网IP是B(还真忘了 ...
- SAP SMARTFORMS World格式白屏
解决方法: SE38 RSCPSETEDITOR 不勾选SAP script 和智能表
- Qt中的多窗体编程(续二)
四.实现子窗体的按钮功能. 1.在显示时间的子窗体中,有两个默认的按钮,都还没有定义其功能,下面就来定义,无论单击哪个按钮,都将线束时钟显示的线程并关闭窗体. 2.在子窗体的可视化设计界面中,在窗体的 ...
- 测开-面试题-MySQL
1 增删改查的关键字分别是什么? 答: insert into \ replace into.delete.update.select 2 内连接和外连接的区别? 答: (1)内连接,只会展示与两表关 ...
- VScode中文乱码问题
参考链接 https://blog.csdn.net/weixin_40040107/article/details/103721554?utm_medium=distribute.pc_releva ...