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

由于工作原因,我的电脑没法上传和下载文件,所以一开始选择了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的提示再把缺少的依赖包装上去就可以了。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值