离线情况下解决pyinstaller生成的可执行文件过大问题

news2024/11/26 2:53:23

由于工作原因,我的电脑没法上传和下载文件,所以一开始选择了anaconda完成python的工作。使用了pyinstaller将脚本生成可执行文件。但是生成出来的exe巨大无比(一个简单的脚本300多M,要花两分钟时间打开),于是开始查资料找原因。
最后定位问题:在生成可执行文件时,python工作在anaconda的环境下,anaconda的库非常的全面,我们一个小项目里面用不到所有的包,但是pyinstaller在打包的时候不管你用不用,都给你打包进去了,从而打包后文件内包含了太多不需要的依赖库,导致可执行文件过大。
网上还有说用 pyinstaller -D xxx可以解决问题,但是我试过了,-D得到的依然是一个巨大的exe可执行文件。
要解决这个问题也很简单,建立一个虚拟环境,然后让我们的项目工作在这个虚拟环境中。项目中所需要的包则安装在这个虚拟环境的site-package内。
建立虚拟环境的办法有很多,我是用pycharm实现的,具体流程如下:
File >> New Project>> New environment using Virtualenv
在这里插入图片描述
选择好项目路径,以及解释器,虚拟环境就建立在当前项目目录下。
创建项目成功后,venv就是存放的我们刚刚创建的虚拟环境。
在这里插入图片描述
这样子虚拟环境就建立好了,接下来就是安装我们需要用到的依赖包了。联网情况下就不说了,有网络啥事都好办,这里说一下没网络的情况下怎么在虚拟环境下安装依赖包。

  1. 首先我们要有依赖包离线安装包(以whl文件为例)
  2. 然后打开windows cmd控制台进入虚拟环境的Scripts目录下(如D:\projects\demo\venv\Scripts)。
    然后输入命令 activate,此时cmd控制台的前面会出现一个(venv),此时就说明你已经进入了你创建的虚拟环境下了。
  3. 之后在这个环境下执行 pip install
    xxxx.whl(你放离线安装包的路径),此时依赖包就被安装到当前所在虚拟环境的site-packages下了,可以进入D:\projects\demo\venv\Lib\site-packages下查看。
  4. 有些依赖包安装时还需要提前装好其他的依赖包,反正如果少装了,最后都会报error,根据error的提示再把缺少的依赖包装上去就可以了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/819491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql进阶(上) -- 存储引擎,索引

👂 Seasons in the Sun - Westlife - 单曲 - 网易云音乐 👈目录 -- 查看左栏 目录 🐘存储引擎 🦁Mysql体系结构 🦁简介 🦁InnoDB介绍 🦁MyISAM和Memory 🦁选择 &#x1f981…

[USACO06JAN] The Grove S

题目 思路 一眼bfs 为了保证bfs能够绕一个圈,我们将这个联通块的最下面的点的下方割去,如图 绿色的地方就是割去的地方,然后我们再加个判断,使bfs从起点出发转一圈,再把这条分割线的左右两边步数最小连起来&#xff…

数字世界未来十年面貌如何?

随着科技的不断发展和创新,数字世界将在未来十年迎来一系列革命性的变化和进步。以下是数字世界未来十年面貌的一些预测: 人工智能全面普及:人工智能将逐渐渗透到我们生活的方方面面。从智能家居到智能交通,从个性化医疗到智能零售…

【vue】 Tinymce 富文本编辑器 不想让上传的图片转换成base64,而是链接

前言:最近项目上需要使用富文本编辑器,觉得tinymce很不错就用了,具体怎么在项目中使用参考 【vue】 vue2 中使用 Tinymce 富文本编辑器 【vue】 Tinymce 数据 回显问题 | 第一次正常回显后面,显示空白bug不能编辑 这两天又遇到了…

早在植物到达之前,泥土就可能形成蜿蜒的河流

在这张卫星视图中可以看到加利福尼亚州死亡谷国家公园恶水盆地的蜿蜒河道。在世界各地的贫瘠环境中都可以找到类似的单线通道,这些环境主要由细粒沉积物组成,几乎没有植被。 图片来源:Google 地球,2023 年 资料来源:地…

奔驰CAN FD嵌入式控制器开发硬件设计及应用趋势

CAN FD作为一种性能可靠、功能完善、成本合理的远程网络通信控制方式,集成CAN/CAN FD控制器的MCU、核心板、工控板及物联网解决方案已经被广泛应用到各个控制系统中,例如汽车电子、自动控制、智能大厦、电力系统、能源物流、智慧改装等各个领域。 中国经…

【ARM Coresight 系列文章 2.4 - Coresight 寄存器:DEVARCH,DEVID, DEVTYPE】

文章目录 1.1 DEVARCH(device architecture register)1.2 DEVID(Device configuration Register)1.3 DEVTYPE(Device Type Identifier Register) 1.1 DEVARCH(device architecture register) DEVARCH 寄存器标识了coresight 组件的架构信息。 bits[31:21] 定义了组件架构&…

深度学习(32)——CycleGAN

深度学习(32)——CycleGAN 文章目录 深度学习(32)——CycleGAN1. GAN原理2. CycleGAN(1)原理(2)核心思想(3)优点(4)缺点(5…

【蓝牙通信】两个Hc-05之间的通信(教程)

目录 1、准备两个蓝牙模块,一个主机,一个从机 2、进入AT状态 3、蓝牙状态指示灯 4、具体步骤 1、准备两个蓝牙模块,一个主机,一个从机 2、进入AT状态 进入AT状态有2种方法: 1.先按住按键不放,再给模块…

IDEA SpringBoot项目引入外部jar并打包

1、首先,我们再pom.xml中导入依赖包时,打包可以正常进行。 但如果我们引入了第三方的外部jar包(这里需要先把jar包添加到该项目依赖库中,这里不做演示),如图 2、导致打包时报错,程序包不存在或…

识别动物的软件,动物园碰到不认识的动物就用它

动物是人类的好朋友,我们常常会在动物园、公园等地方看到各种各样的动物。但是有时我们会遇到一些不认识的动物,这时我们应该怎么办呢?下面将介绍一些识别动物的方法以及遇到不认识动物的应对方法。 识别动物的方法 要想识别一个动物&#x…

【长链剖分】icpc 2022西安 L

Problem - L - Codeforces 题意&#xff1a; 思路&#xff1a; Code&#xff1a; #include <bits/stdc.h>#define int long longusing namespace std;const int mxn1e610; const int mxe1e610;vector<int> G[mxn],lp;int N,Fa; int son[mxn],len[mxn];void dfs1(…

Apriori关联规则挖掘

在某个商场&#xff0c;销售经理希望通过重新布置商品的摆放情况来提高销售额&#xff0c;那么该如何摆放既有利于方便顾客购买&#xff0c;也刺激顾客的购买欲呢&#xff1f;商品的摆放并不是随意的&#xff0c;首先是将同类商品放在一起外&#xff1b;其次&#xff0c;可以考…

shell脚本练习--安全封堵脚本,使用firewalld实现

一.什么是安全封堵 安全封堵&#xff08;security hardening&#xff09;是指采取一系列措施来增强系统的安全性&#xff0c;防止潜在的攻击和漏洞利用。以下是一些常见的安全封堵措施&#xff1a; 更新和修补系统&#xff1a;定期更新操作系统和软件包以获取最新的安全补丁和修…

OpenFrp

https://www.openfrp.net/ 建议实名认证 创建隧道 选择左边的节点&#xff0c;因为ssh是tcp应用&#xff0c;所以选择有tcp的节点 隧道名字随便 本地端口&#xff0c;因为我要用ssh&#xff0c;所以选22 远程端口可以选择下面的随机远程端口 提交 打开linux服务器 sudo ap…

管理类联考——写作——论说文——实战篇——行文篇——通用性强,解释多种现象的经典理论——谈好处

一个标题&#xff0c;三句开头&#xff0c;四层结构&#xff0c;两句结尾 谈好处 马斯洛需求层次理论 理论介绍 马斯洛需求层次理论是由美国著名社会心理学家马斯洛提出的关于需要结构的理论。该理论认为&#xff0c;人们需要动力实现某些需要&#xff0c;有些需求优先于其…

三、Spring源码-实例化

Spring源码-Bean的实例化 接下来我们看看Bean的实例化处理 一、BeanDefinition 首先我们来看看BeanDefinition的存放位置。因为Bean对象的实例化肯定是BeanFactory基于对应的BeanDefinition的定义来实现的&#xff0c;所以在这个过程中BeanDefinition是非常重要的&#xff0c;…

QGraphicsView基本初识别

拖拽如下控件&#xff1a; 然后实现效果&#xff1a; 圆形和矩形都可以移动&#xff0c;矩形、圆形就是图元&#xff0c;而图元放在我们创建的场景中&#xff0c;场景又透过多个视图来看到&#xff0c;其实可以理解成很多人偷窥你在吃饭的这个场景&#xff0c;饭和你这些角色…

使用UltraISO制作麒麟v10系统盘

大家好&#xff0c;我是早九晚十二&#xff0c;目前是做运维相关的工作。写博客是为了积累&#xff0c;希望大家一起进步&#xff01; 我的主页&#xff1a;早九晚十二 文章目录 1 背景2 准备工作2.1 镜像准备2.2 制作工具2.3 启动U盘 3 制作步骤3.1 找到ISO文件&#xff0c;右…

ThingsKit物联网平台可视化之用户权限说明

角色设计 角色设计是软件设计中的一个重要环节&#xff0c;它决定了用户在软件系统中的使用体验和交互方式。在本系统中包含四类角色&#xff0c;分别是&#xff1a;超级管理员、平台管理员、租户、客户。以下是对应角色的关系及相关说明。 角色关系 角色说明 角色名称描述超…