zoukankan      html  css  js  c++  java
  • 解决用pyinstaller打包python程序,生成的.exe文件过大问题【转】

    计算机是Windows 7旗舰版 32位操作系统。

    Anaconda3,32bit版本

    python3.7

    安装完 Pyinstaller,安装Pyinstaller的命令为:pip install pyinstaller

    通过pyinstaller -F dataConvert_v1.0.py命令生成的dataConvert_v1.0.exe文件有200多M大小,而源文件

    dataConvert_v1.0.py实际上只有6K大小。

    网上查找资料是说,因为“Anaconda里内置了很多库,打包的时候打包了很多不必要的模块进去,导致打包后的.exe文件变得很大。” 因此可以使用 虚拟环境pipenv 来打包。

    pipenv是虚拟的python环境,即,它可以在电脑上某个文件夹下创建一个虚拟的python环境,这个环境和你用Anaconda安装的python是完全独立的,互相不影响。这个新建的虚拟的python环境里边包含的库非常少,你可以在里边安装你的.py源文件里

    需要的第三方库,然后打包成.exe,这时打包的.exe文件中不会被无缘无故添加一些不相关的库,因此会生成大小合适的.exe文件。

    使用 Pipenv打包步骤如下:
    1.安装 pipenv

    pip install pipenv

    2. cd到我们想要作为虚拟环境的文件夹下,比如我的是:D:data_dlpipenv,然后在该目录下执行:

    pipenv install --python 3.7

     

    这样就可以在D:data_dlpipenv目录下创建一个局部的环境了,在pipenv文件夹下会出现Pipfile文件。这里的3.7可以随意写。

    我这里是因为我的python开发环境是3.7版本。

    3.激活环境

    pipenv shell

    如上图。
    这时,我们就进入到了新建的虚拟环境。

    4. 查看已有的库(非必要)

    pip list

     

    可以看到虚拟环境里自带的库非常少,非常干净。

    5.安装自己的.py文件中所需要的第三方库

    因为一会需要用pyinstaller生成.exe文件,因此要安装pyinstaller。

    我的.py源文件中引用了openpyxl库,因此我需要安装的库如下:

    pipenv install pyinstaller

    pipenv install openpyxl

    如上图和下图:

     

    此时可以再用pip list查看虚拟环境中的库。

    6.利用pyinstaller 生成.exe文件

    把你的.py源文件拷贝到这个目录下面(我的是D:data_dlpipenv目录),执行 pyinstaller命令

     

     

    最终生成的.exe文件大小为6M左右。

     

     

    转自
    版权声明:本文为CSDN博主「RYOMARYOMA」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ryomaryoma/article/details/106238214

  • 相关阅读:
    姐姐的vue(1)
    LeetCode 64. Minimum Path Sum 20170515
    LeetCode 56. 56. Merge Intervals 20170508
    LeetCode 26. Remove Duplicates from Sorted Array
    LeetCode 24. Swap Nodes in Pairs 20170424
    LeetCode 19. Remove Nth Node From End of List 20170417
    LeetCode No.9 Palindrome Number 20170410
    LeetCode No.8. String to Integer (atoi) 2017/4/10(补上一周)
    LeetCode No.7 Reverse Integer 2017/3/27
    LeetCode No.4 Median of Two Sorted Arrays 20170319
  • 原文地址:https://www.cnblogs.com/paul8339/p/14971881.html
Copyright © 2011-2022 走看看