【Python】| 打包成exe文件的两种方式 ( Pyinstaller & auto-py-to-exe )

打包流程

(1) 通过命令使用Pyinstaller
  • #创建虚拟环境–减小Size

    conda create -n Kyle python=3.6
    

在这里插入图片描述

  • #激活虚拟环境

    conda activate Kyle3.6
    

在这里插入图片描述

  • #查看当前存在的虚拟环境

    conda env list
    

在这里插入图片描述

  • #切换到打包路径下

    CD D:\work\study\Kyle
    
  • #安装相应第三方库

    pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ PyQt5==5.13.0
    pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ pandas==1.0.3
    pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ XlsxWriter==1.0.2
    pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ pyspider
    
    pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ PyQt5==5.13.0
    pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ pandas==1.0.3
    pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ XlsxWriter==1.0.2
    pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ pyspider
    

小Tips

安装相应第三方库国内镜像源:

清华:https://pypi.tuna.tsinghua.edu.cn/simple

阿里云:http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

华中理工大学:http://pypi.hustunique.com/

山东理工大学:http://pypi.sdutlinux.org/ 

豆瓣:http://pypi.douban.com/simple/
  • #Pyinstaller打包

    Pyinstaller -F -w -i kyle.ico KyleChear.py
    

在这里插入图片描述

  • #关闭当前虚拟环境

    conda deactivate
    
  • #删除虚拟环境

    conda env remove -n Kyle3.6
    
  • 小贴士

    Pyinstaller打包
    
    建议参考:https://blog.csdn.net/wuShiJingZuo/article/details/115291276
    
    Pyinstaller -F -w -i kyle.ico KyleChear.py
    
    其中kyle.ico为图标文件
    
    -F 表示生成单个可执行文件
    
    -w 表示去掉控制台窗口,这在GUI界面时非常有用。
    
    -i 表示可执行文件的图标
    
  • 可能会踩的坑

    Pyinstaller打包报错
    --------------------------------------------------------------------------------
    File "c:\programdata\anaconda3\envs\v1\lib\site-packages\PyInstaller\hooks\hook-distutils.py", l
        hiddenimports = [sysconfig._get_sysconfigdata_name()]
    TypeError: _get_sysconfigdata_name() missing 1 required positional argument: 'check_exists'
    --------------------------------------------------------------------------------
    

    解决方案

    解决方案:
    转到python交互式shell,做
    $ python
    
    >> import sysconfig
    >> print(sysconfig.__file__)
    >> 这应该为您提供文件所在的位置sysconfig。然后你需要去那个文件并编辑源代码,
    
    修改了check_exists= True
    

    源文件修改后

    def _get_sysconfigdata_name(check_exists= True):
       
        res = os.environ.get('_PYTHON_SYSCONFIGDATA_NAME', None)
        if res and check_exists:
            try:
                loader = importlib.util.find_spec(res)
            except:
                res = None
        if res:
            return res
        return '_sysconfigdata_{abi}_{platform}_{multiarch}'.format(
                abi=sys.abiflags,
                platform=sys.platform,
                multiarch=getattr(sys.implementation, '_multiarch', ''))
    

(2) 使用auto-py-to-exe

  • python 环境要大于或等于 2.7
  • 然后在 cmd 里面输入:pip install auto-py-to-exe ,输入完成之后,pip 就会安装 auto-py-to-exe 包
  • 输入auto-py-to-exe 启动 auto-py-to-exe 程序

在这里插入图片描述

功能介绍

  • Script Location :Script Location 主要是指定我们要打包的 python 文件

  • Onefile Onefile:下有两个选项,分别是:One Directory 和 One File.如果选择 One Directory ,那么程序打包完成后会是一个文件夹的形式展现 ; 如果选择 One File ,那么程序打包完成后就一个 .exe 文件

  • Console Window: Console Window 主要设置打包程序运行时,是否出现控制台. Console Based : 当打包的程序运行时会显示一个控制台界面 ; Window Based (hide the console) : 会隐藏控制台界面,主要用于带有 GUI 的 python 程序打包

  • Icon:用于指定打包程序的图标

生成exe文件

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值