python打包项目生成exe文件大启动慢的解决方法

目录

一 使用pyinstaller打包exe

1 首先安装pyinstaller 包

2 win+R,cmd 进度dos界面

3 进度代码目录内,然后使用pyinstaller -F main.py

二 exe文件大且启动很慢

1 解决办法1:在原始python编译器下创建虚拟环境

(1) 在命令行(CMD)使用pip命令安装pipenv库,用于创建虚拟环境

(2) 新建一个准备当环境的文件夹,并cd进入该文件夹,比如虚拟文件夹路径D:\Python\Package_virturl

(3) 建立虚拟环境,即输入命令pipenv install

(4) 进入虚拟环境(以下操作皆为虚拟环境下的操作)pipenv shell

(5) 安装.py文件用到的模块

(6) 在虚拟环境中安装pyinstaller模块,用于打包.py文件

(7) 使用pyinstaller打包文件

(8) 结果文件

2 解决办法2:使用anaconda创建的虚拟环境

(1) 我们先进入终端界面

(2) 创建虚拟python环境

(3) 安装程序中需要用到的各种第三方库包

3 解决办法3:pycharm使用anaconda创建的虚拟环境,通过pycharm的terminal进行创建exe文件

(1) 进入项目设置里的Project Interpreter,然后点击show all

(2) 进入如下页面后,点击第一步添加 ,第二步Existing environment

(3) 选择自己在anaconda里创建的虚拟环境,路径在anaconda的安装路径里的envs里,最后点击确定

​(4)点击确认

(5) 确认程序运行无误后,点击pycharm的terminal

(6) 在terminal中通过cd 进入代码所在路径,然后输入命令,pyinstaller -F main.py,开始生成exe文件

(7) 结果文件

三 anaconda介绍以及如何创建anaconda虚拟环境

1 anaconda介绍

2 Anaconda安装

3 Anaconda使用教程

(1) 修改为清华源,直接打开cmd输入以下命令

(2) 移除清华源

(3) Anaconda安装好后,开始菜单中会出现关于Anaconda的快捷方式,主要使用的是两个,为Anaconda Prompt 和Anaconda Navigator,


一 使用pyinstaller打包exe

1 首先安装pyinstaller 包

pip install pyinstaller

2 win+R,cmd 进度dos界面

3 进度代码目录内,然后使用pyinstaller -F main.py

 在代码目录内,生成dist文件夹,内部会生成一个exe文件,运行文件,成功

二 exe文件大且启动很慢

在第一步中,生成exe文件后,会发现一个就只有几十行代码的程序,打包出来竟然有300多MB,exe文件很大,且启动后运行很慢。主要原因是pyinstaller会把python环境中的很多项目没有用到的包都一起打包进去,这样就增大了exe的大小。

1 解决办法1:在原始python编译器下创建虚拟环境

使用pipenv创建虚拟python环境,然后在虚拟环境中把程序代码中涉及到第三方库重新安装一遍,同时也需要在虚拟环境中使用pip,安装打包所用到的pyinstaller(注意是虚拟环境中安装)。具体步骤如下:

(1) 在命令行(CMD)使用pip命令安装pipenv库,用于创建虚拟环境

C:\Users\Administrator>pip install pipenv

(2) 新建一个准备当环境的文件夹,并cd进入该文件夹,比如虚拟文件夹路径D:\Python\Package_virturl

C:\Users\Administrator>D:

D:\>cd D:\Python\Package_virturl

D:\Python\Package_virturl>

(3) 建立虚拟环境,即输入命令pipenv install

D:\Python\Package_virturl>pipenv install

(4) 进入虚拟环境(以下操作皆为虚拟环境下的操作)pipenv shell

D:\Python\Package_virturl>pipenv shell

(5) 安装.py文件用到的模块

(6) 在虚拟环境中安装pyinstaller模块,用于打包.py文件

D:\Python\Package_virturl>pipenv shell
Launching subshell in virtual environment...
Microsoft Windows [版本 10.0.18363.1198]
(c) 2019 Microsoft Corporation。保留所有权利。

(Package_virturl-cpK0DSyI) D:\Python\Package_virturl>pip install pyinstaller

(7) 使用pyinstaller打包文件

(Package_virturl-cpK0DSyI) D:\Python\Package_virturl>pyinstaller -F D:\Python\PureProject\budgetproject2\main.py

-F 参数为 产生单个的可执行文件
-w 参数为 指定程序运行时不显示命令行窗口(仅对 Windows 有效)

(8) 结果文件

在第(2)步创建的文件夹目录下回生成‘dist’文件夹,里面存放的exe就是结果文件,文件大小会小很多且运行启动也较快,解决办法1测试有效。

2 解决办法2:使用anaconda创建的虚拟环境

Anaconda安装好后,开始菜单中会出现关于Anaconda的快捷方式,主要使用的是两个,为Anaconda Prompt 和Anaconda Navigator,其中Anaconda Prompt为终端窗口,Anaconda Navigator图形界面,我们主要使用Anaconda Prompt,这个和我们的dos界面大致相同。

(1) 我们先进入终端界面

修改第三方库下载源(主要目的是提升包安装速度,外国网站较慢):

直接打开cmd输入以下命令(或者在Anaconda Prompt为终端窗口)

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes

移除清华源,输入:

conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

这个命令是为了移除之前conda config –show channels显示的清华源。

以后的创建环境和环境切换,和pip安装各种包全在这里

几个常用的快捷键:

①conda info 查看当前环境的信息

②conda info -e 查看已经创建的所有虚拟环境

(2) 创建虚拟python环境

目前我创建的1个虚拟环境,64位python3.8,可以通过下面指令对虚拟环境进行创建和激活

①conda activate xx 切换到xx虚拟环境

②set CONDA_FORCE_32BIT=1 # 切换到32位
set CONDA_FORCE_32BIT=0 # 切换到64位

表示已经切换到64位 

③conda create -n xxx python=3.8 创建一个python3.8 名为xxx的虚拟环境,如要创建32位的python环境,先设置为32位在创建环境,这样创建好的环境即为32位的Python环境,先切换到创建好的环境中
然后输入python 检查下是否为64位的python3.8版本

自此,conda的虚拟conda_python3.8环境已经构建完成。

④ exit()退出,然后pip list 输出当前虚拟conda_python3.8已安装包

(3) 安装程序中需要用到的各种第三方库包

①比如pandas,xlwings,openpyxl等。同时不要忘记再次安装pyinstaller,pip install pyinstaller

 进入代码文件夹路径,代码如下,然后输入命令pyinstaller -F main.py,开始打包项目,生产exe文件

②输出结果

在当前代码目录下,会生成一个dist文件夹,文件夹内的exe文件即为生成结果文件,此时文件较小,且启动较快。

第①步中,也可以不进入代码文件所在目录,直接使用命令pyinstaller -F D:\Python\PureProject\budgetproject2\main.py,此时生成的dist文件夹及内exe文件位置则再编译器所在位置中的\Scripts文件夹内

3 解决办法3:pycharm使用anaconda创建的虚拟环境,通过pycharm的terminal进行创建exe文件

(1) 进入项目设置里的Project Interpreter,然后点击show all

(2) 进入如下页面后,点击第一步添加 ,第二步Existing environment

(3) 选择自己在anaconda里创建的虚拟环境,路径在anaconda的安装路径里的envs里,最后点击确定

(4)点击确认

 至此pycharm使用该环境已完毕

(5) 确认程序运行无误后,点击pycharm的terminal

(6) 在terminal中通过cd 进入代码所在路径,然后输入命令,pyinstaller -F main.py,开始生成exe文件

 

(7) 结果文件

 在当前代码目录下,会生成一个dist文件夹,文件夹内的exe文件即为生成结果文件,此时文件较小,且启动较快。

三 anaconda介绍以及如何创建anaconda虚拟环境

1 anaconda介绍

写python,一个电脑上就一个python环境和pycharm就够了,但是遇到不同的项目,可能需要不同的python环境。如何解决这个问题,第一个办法是在电脑上安装多个python环境,使其同时存在,但这样过于麻烦而且容易搞混淆,这里介绍下anaconda的安装和使用,利用anaconda创建虚拟python环境。

2 Anaconda安装

打开下载好的 Anaconda.exe文件,出现如下界面。

点击 Next 即可

用户协议,点击 I Agree

选All Users 点Next

 接下来选择安装路径,这里不建议装在C盘,安装完大概3个G左右,路径要知道自己安到了哪里(后续使用不同环境的时候会用到这个安装路径)。选择好之后点击Next 

 接下来是重中之重,第一个选项是添加环境变量,默认是没有勾选的,请务必勾选上,如果这里不勾选,后续安装完成后想要自行添加环境变量会非常麻烦。勾选完后点击 Install 安装。 

如果忘了勾选可以键单击我的电脑——属性——高级系统设置——环境变量——系统变量选中path——编辑——新建,分别加上:
· Anaconda3的路径,例如:C:\Users\xiaoyu\Anaconda3
· Anaconda3\Scripts的路径,例如:C:\Users\xiaoyu\Anaconda3\Scripts
· Anaconda3\Library\bin的路径,例如:C:\Users\xiaoyu\Anaconda3\Library\bin

这里是pycharm的一个推广没有需求的话可以不用管,最后一步了,继续点Next。

Finish完成。(那两个 √ 可以取消。)

安装完成后在开始菜单会多出一个快捷方式,也就是Anaconda下的子程序: 

开始菜单

3 Anaconda使用教程

(1) 修改为清华源,直接打开cmd输入以下命令

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes

(2) 移除清华源

输入:conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
这个命令是为了移除之前conda config --show channels显示的清华源。

(3) Anaconda安装好后,开始菜单中会出现关于Anaconda的快捷方式,主要使用的是两个,为Anaconda Prompt 和Anaconda Navigator,

其中Anaconda Prompt为终端窗口,Anaconda Navigator图形界面,我们主要使用Anaconda Prompt,这个和我们的dos界面大致相同。

以后的创建环境和环境切换,和pip安装各种包全在这里

几个常用的快捷键:

①.conda info 查看当前环境的信息

②conda info -e 查看已经创建的所有虚拟环境

目前我创建的1个虚拟环境,64位python3.8

③conda activate xx 切换到xx虚拟环境

④set CONDA_FORCE_32BIT=1 # 切换到32位
set CONDA_FORCE_32BIT=0 # 切换到64位

表示已经切换到64位 

⑤conda create -n xxx python=3.8 创建一个python3.8 名为xxx的虚拟环境,如要创建32位的python环境,先设置为32位在创建环境,这样创建好的环境即为32位的Python环境,先切换到创建好的环境中
然后输入python 检查下是否为64位的python3.8版本

 自此,conda的虚拟conda_python3.8环境已经构建完成。

⑥exit()退出,然后pip list 输出当前虚拟conda_python3.8已安装包

⑦安装程序中需要用到的各种第三方库包,比如pandas,xlwings,openpyxl等。同时不要忘记再次安装pyinstaller,pip install pyinstaller

⑧进入代码文件夹路径,代码如下,然后输入命令pyinstaller -F main.py,开始打包项目,生产exe文件

⑨输出结果

在当前代码目录下,会生成一个dist文件夹,文件夹内的exe文件即为生成结果文件,此时文件较小,且启动较快。

物联沃分享整理
物联沃-IOTWORD物联网 » python打包项目生成exe文件大启动慢的解决方法

发表评论