精华内容
下载资源
问答
  • PYQT5打包文件太大,使用pipenv创建虚拟环境打包 win10cmd安装pip pip安装pipenv 创建独立于anaconda的虚拟环境用来打包pyqt5程序 检查环境是否符合需求 打包 1.win10cmd安装pip 首先在电脑上单独安装python,官网...

    PYQT5打包文件太大,使用pipenv创建虚拟环境打包

    1. win10cmd安装pip
    2. pip安装pipenv
    3. 创建独立于anaconda的虚拟环境用来打包pyqt5程序
    4. 检查环境是否符合需求
    5. 打包

    1.win10cmd安装pip

    首先在电脑上单独安装python,官网https://www.python.org/downloads/windows/下载安装,独立于anaconda.

    然后在环境变量中将此python路径加入,以便cmd使用

    在官网上https://pypi.org/project/pip/#files下载*.gz文件,解压并安装(在该目录下进行安装)
    python setup.py install
    在这里插入图片描述
    查看是否安装成功,用pip -V查看

    2. pip安装pipenv

    输入命令pip install pipenv进行安装,若安装速度太慢,可在pip install后面加入
    -i https://pypi.tuna.tsinghua.edu.cn/simple selenium (或其他下载源)

    输入命令pipenv --version来查看是否安装成功

    3.创建独立于anaconda的虚拟环境用来打包pyqt5程序

    1.创建虚拟环境

    首先在需要编写代码的地方,新建文件夹,然后打开cmd窗口,并使用cd命令切换到该文件夹下。
    在cmd窗口下输入以下命令pipenv install --three(或two),然后就可以在当前的文件夹下创建虚拟环境。

    红框处为虚拟环境路径

    2.激活虚拟环境,安装程序依赖包

    在1中新建文件夹cmd目录下,使用命令pipenv shell 激活环境。

    使用命令pip install 包名,安装程序运行所需要的包
    (另:1.pipenv graph 命令可用来查看当前环境主动安装的包有哪些
    2.环境主目录下使用pipenv -rm 可用来删除该虚拟环境,或直接在Virtualenv location 删除对应环境)

    4.检查环境是否符合需求

    一般在目录C:\Users\用户名.virtualenvs\ 下就是我们创建的虚拟环境,进入对应环境,主要检查一个文件pyvenv.cfg
    在这里插入图片描述
    在这里插入图片描述
    注意红框处的路径是否为电脑单独安装的python路径,而非anaconda环境下的python路径!

    5.打包

    pyinstaller -F -w -i 图标路径 待打包文件.py, 其中,-F为单文件打包方式,打包为一个exe,可换成-D多文件打包模式,打包会有相应依赖项.dll。

    pyinstaller -F -w -i ./res/tubiao.ico Demo.py
    
    展开全文
  • 1.最近用python写了个小程序,使用PyQt5,但在使用Pyinstaller打包时,发现居然有200M+。程序很简单,如图. 在网上找了很多方法,包括虚拟环境,upx压缩等等,但是其中虚拟环境确实能避免打入不必要的包(此时...

    1.最近用python写了个小程序,使用PyQt5,但在使用Pyinstaller打包时,发现居然有200M+。程序很简单,如图.

        在网上找了很多方法,包括虚拟环境,upx压缩等等,但是其中虚拟环境确实能避免打入不必要的包(此时大小为60M),UPX压缩也能减小一部分(此时大小为57M左右)。

        后来我发现在我在程序里使用了一个labelme的包,这个包只用到了一个函数img_b64_to_arr,其他东西完全是占体积的。

        于是复制了关联的函数,删除了该包。

        此时大小不到50M,使用UPX大小为42M

    2. 在寻找解决方法的时候发现了这个

    pyinstaller打包后程序体积太大,如何解决? - 吵吵的回答 - 知乎

    那么,此时最占体积的就是PyQt了,因为只是个小程序,体积太大反而不好。所以我又使用Tkinter对GUI重新复现了一下。主要对比Tkinter和PyQt使用Pyinstaller打包后的大小。

    Tkinter是python自带的图形库,所以它的性能不是很差,但是它的库少,UI比较“丑”。如果对美观有要求,tkinter确实弱了一点,这个时候可以选用pyqt。

    使用了Tinker做GUI的程序大小为20M+,upx压缩后为16M

    界面对比(左PyQt5,右Tkinter)

    结论:

    因此写个小程序用TKinter写,打包起来体积更小。

     

     

    展开全文
  • 因为开发环境pip install了一堆的库,打包以后一个exe居然有164M之巨,于是想到建个干净的虚拟环境试试: #建立虚拟环境 pip install virtualenv pip install virtualenvwrapper-win pipenv install #查看虚拟...

    因为开发环境pip install了一堆的库,打包以后一个exe居然有164M之巨,于是想到建个干净的虚拟环境试试:

    #建立虚拟环境
    pip install virtualenv
    pip install virtualenvwrapper-win
    pipenv install
    
    #查看虚拟环境:
    lsvirtualenv
    
    #进入虚拟环境:
    pipenv shell
    
    #安装模块:
    pip install pyinstaller
    pip install pyecharts==0.5.11
    pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip install PyQtWebEngine -i https://pypi.tuna.tsinghua.edu.cn/simple
    #下载文件:https://pypi.org/project/pyecharts-snapshot/#files
    pip install pyecharts_snapshot-0.2.0-py2.py3-none-any.whl
    pip install setuptools==44.0.0
    
    #打包:
    pyinstaller --noconsole --onefile Qcharts.py

    最后发现能减小一些,但还是有104M之巨。

    展开全文
  • 手把手教你pyqt打包成exe 如果是打包萌新,建议您先看: 上一篇提到打包的环境和打包示例一(没有外部资源依赖的打包): 手把手教你pyqt打包成exe(1) 这篇将讲解示例二(带有多个外部资源依赖程序的打包),同时...

    手把手教你pyqt程序打包成exe


    如果是打包萌新,建议您先看:

    上一篇提到打包的环境和打包示例一(没有外部资源依赖的打包):
    手把手教你pyqt打包成exe(1)


    这篇将讲解示例二(带有多个外部资源依赖程序的打包),同时进一步讲解.spec文件。

    0x00 示例二

    项目文件结构

    在这里插入图片描述
    需要打包的项目复制出一份,然后适当调整项目文件结构。

    为什么我一直强调项目文件结构?

    我个人觉得,项目文件结构调整好,才不容易出现因为在某个py文件引用了其他py的内容,由于自己import操作不当而出现打包后找不到某个引用的模块等问题。。

    再说,如果只是自己
    为了打包一个比较实用的exe(可以发exe文件别人,然后在其他电脑上正常运行),那么我完全可以将项目文件结构调整的更利于打包的形式。比如:将多个py文件合并到一个py文件,这样就可以避免因为自己import不当而出现的打包后运行出错的问题。

    ps:用pyinstaller打包exe,我研究了将近两天时间,不断找资料,不断尝试。最后作个总结,也希望能够帮到某些人。如果有不太对的地方,希望大家积极指出~

    资源文件说明

    示例二项目文件:
    引用了多个外部资源文件,如图中红色矩形所示。
    在这里插入图片描述
    MainDemo.py集成了其他的py里的类。

    我们的目标是把外部资源文件一起打包”进“exe文件,并且要正常运行。

    本来这些外部资源文件不是在src下的,我是为了避免各种出错才把它放在了src文件夹下。

    这次我们先来单个文件夹打包~

    预处理

    我们引用的文件资源,路径全部用的是我们本机上的(相对)路径。如果移动到其他计算机上,那么很可能因为依赖的外部资源文件路径不同而无法运行。
    直接上解决措施吧。
    需要新建一个py文件来”冻结”资源文件路径:
    frozen_dir.py

    import sys
    import os
    def app_path():
        """Returns the base application path."""
        if hasattr(sys, 'frozen'):
            # Handles PyInstaller
            return os.path.dirname(sys.executable)
        return os.path.dirname(__file__)
    
    if __name__=='__main__':
        print(app_path())
    

    这个py文件是为了获得’冻结了’的基路径
    其他文件路径,可由基路径+字符串 拼接获得。
    要注意这个py文件放的位置,要在src下。
    在这里插入图片描述
    要引用外部资源文件的地方,那个py文件要import frozen_dir,
    资源路径 = app_path() + xxx/xx
    比如要引用imgs里面的图片,

    base = frozen_dir.app_path()
    图片路径 = '{}\imgs\分析.png'.format(base)
    

    引用其他资源文件同理,因为冻结路径的py文件和它们一样都在src下。
    这样不管,在哪台计算机中运行,都会相对’冻结路径‘的基路径来精确获得资源路径。

    基于冻结的基路径将引用的外部资源文件的路径设置好后,我们开始来打包。

    单文件夹打包

    pyinstaller -D -w -i .\halo.ico .\MainDemo.py
    

    在这里插入图片描述
    此时去dist中的文件夹下找到exe双击运行:
    在这里插入图片描述
    cmd运行:
    在这里插入图片描述
    发现并没有提示错误。
    为什么?
    因为我能程序里引用的外部资源并没有打包进去
    我们来修改.spec:
    在这里插入图片描述
    add_files是一个列表,列表里元素是元组,
    元组第一项是要引用的外部资源的路径(可以是文件/文件夹),第二项是打包进exe,在exe中的路径(所在文件夹)

    然后输入:

    pyinstaller .\MainDemo.spec
    

    重新构建exe
    在这里插入图片描述
    再去dist里面找exe并运行:
    在这里插入图片描述

    完美~

    PS:
    细心的崽崽一定会发现,其实只是把外部资源文件拷贝了一份在exe所在的文件夹下,并不是压缩到exe里面去~
    (图片资源可以压缩进exe,通过
    编写qrc文件转换为py文件,导入py文件,修改引用----》
    手把手教你pyqt中.qrc图片文件的编写和使用

    在这里插入图片描述
    所以,刚才也可以不修改.spec文件,可以直接把外部资源文件拷贝进exe所在文件夹,这样也可以运行exe。

    再次Tip:只要dist文件夹里的有用,发给别人的时候只需要发这里面的东西即可(本来pyqt打包的exe就比较庞大,更没必要发一下没用的文件给别人)

    下面来演示单文件打包。

    单文件打包

    pyinstaller -F -w -i .\halo.ico .\MainDemo.py
    

    一开始我以为exe图标没有成功加上去。
    害的我还不断尝试,尝试的要崩溃的感觉。挺扎心的,不过还好没放弃~

    pyqt打包exe的icon“没有显示”的原因:

    这里icon没显示的原因:
    其实是因为icon不够大,而图标又放的太大显示不出来。

    真的显示不了的原因可能是图标不符合icon标准

    只需要按住ctrl+鼠标滚轮缩小即可看的icon…
    在这里插入图片描述
    此时双击能运行吗?
    我为啥要先做单文件夹的演示?哈哈~

    在这里插入图片描述
    解决方案和上面一样。
    简单的肯定不是改.spec文件在重构。
    而是把依赖的资源文件/文件夹拷贝到exe所在目录下。
    也正好验证一下上面提到的!

    在这里插入图片描述
    示例演示就暂时到这里了,希望能带给你点启发,给你点帮助~
    如果有帮助或者启发,关注我,或者给我点个赞,留个言,就是对我最大的鼓励了!!
    ------》现在是2020/04/26/ 0:30

    .spec文件

    篇幅原因 + 太晚了!!
    这里也简单介绍一点.spec里面的配置吧。
    研究深入点+有时间 再单独写一篇吧。
    在这里插入图片描述

    总结

    pyqt程序打包成exe需要自己多折腾~
    还要想办法压缩打包exe的体积。
    有时间也可以多去了解一下pyqt生成的exe的编译和反编译…

    说明

    如果有帮助或者启发,关注我,或者给我点个赞,留个言,就是对我最大的鼓励了!!** ------》现在是2020/04/26/ 0:59

    参考:文献1

    展开全文
  • 手把手教你将pyqt程序打包成exe(1)

    千次阅读 2020-04-26 01:03:27
    手把手教你将pyqt程序打包exe 0x00 环境说明 PyQt 5.13.1 python 3.7 ps: PyQt 5.13.1 以下的请更新,否则打包后可能会出现缺少PyQt的dll等问题… 更新包(模块)的命令: 更新到指定版本: pip install PyQt5==...
  • 资源名称:使用pyqt开发windows gui程序及打包教程内容:这是一门Python GUI编程的项目实战课程,目标是让学员学会使用pyqt设计基本的GUI程序,让你从“不...资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
  • pyqt5 GUI程序打包

    2019-08-11 15:55:38
    pyqt5 GUI程序打包 解决方案: 第一步 pip install pyinstaller 第二步 pyinstaller -F MainWindow.py 一遍成功,yes! 第三步:测试 但是运行不起来,会闪退,不知道问题在哪里? 通过加入了 os.system...
  • 使用pyqt制作完成的软件,一般都是需要打包成exe后才能给别人使用,因为使用者的环境中可能没有相关的运行环境,比如pyqt运行需要pip安装多种pyqt包,甚至于用户环境中都没有python环境,此时就需要将python脚本打包...
  • pyqt pyinstaller与nuitka打包踩坑

    千次阅读 2020-08-24 12:44:29
    首先是打包工具的选择: 目前主流工具是选用pyinstaller和最近比较火的nuitka,其他的几个工具比较没什么特点,要么比pyinstaller打包的坑多资料少,要么没有nuitka的打包的安全性和速度快。 pyinstaller 首先...
  • 其中这边的参数有很多,网上也有帖子,大家可以去仔细查,这边的关键点在于如果你是第一次打包的话,尽量不要用到首先-F -W,-F时打包成一个EXE文件,如果你脚本过,会造成打开时间过长的情况,-W是去掉命令行终端...
  • Pyinstaller打包exe太大,运行太慢

    万次阅读 2019-11-28 23:51:45
    通过python使用pyqt编写了一个界面程序,并使用pyinstaller将其打包成exe文件 2.问题 打包的exe文件非常,有280M,而且更无法忍受的是打开非常非常的慢!!! 3.解决办法 (1)将import改为from...import... ...
  • 笔者将 pyqt5(11版本,13版本打包要修改路径,比较麻烦)写出的GUI程序进行pyinstaller(3.5)打包迁移,但发现在另一个电脑上显示出来的窗口并不一样,经过多轮字体测试 原电脑: 迁移的未装python解释器的电脑:...
  • PyQt5 用pyinstaller 打包成桌面GUI

    千次阅读 2018-11-07 07:10:23
    之前使用的是py2app,一个是打包之后文件太大,有230M,另外在运行时会出现这种错误: LSOpenURLsWithRole() failed for the application /Volumes/Disk1/编程练习/GUI测试/dist/NameDesign...
  • python写的pyqt5程序需要转换成exe,用cxfreeze打包可以正常运行,但是输出文件太大,就一个小的GUI程序就超过200m了,google也有一些说法总之就是很难办。 用pyinstaller打包以后程序体积比较小只有30来兆,但是又...
  • 最近使用PyQt5做一个小程序,程序功能简单;程序做玩后,运行比较卡顿,深觉...用来做桌面开发或者程序,就不适合.1,PyQt5打包安装pyinstallerpipinstallpyinstaller #打包 pyinstaller-ixxx.ico-Fxxx.py-w #-w不带...
  • pyqt5 pyinstaller 打包成exe 过程记录 LTS

    千次阅读 2019-12-27 16:54:58
    pyqt5 pyinstaller 打包成exe 过程与错误记录 2019 12 27 使用的环境: win7 64位机器上面,使用virtualenv 创建一个 python 虚拟环境 安装的是 Python 3.6.7 32位 的 其中的six serial 等不是必须的, sip 这个不确定...
  • pyinstaller 打包的文件很使用以下代码进行打包操作尝试首先介绍我的各个Py文件各个py文件涉及的模儿第一次尝试第二种方案啊第三中方案(新建环境)如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定...
  • 毕业设计,将训练好的卷积神经网络,制作了一个检测系统,并且使用PyQt5制作了一个GUI界面。在pycharm运行稳定。 在cmd执行: pyinstaller -F -w 我要打包的文件.py 输出错误: 156 INFO: PyInstaller: 4.2 156 ...
  • 总结使用pyinstaller打包pyqt5以及pytorch的各种坑

    千次阅读 多人点赞 2018-11-11 22:18:12
    下面总结下使用pyinstaller的经验,以及打包pyqt5做的界面和打包深度学习框架pytorch。 一.使用pyinstaller 使用pip installer pyinstaller 安装库即可(不是很好用有时候安装上去还是显示没) 也可以到官网上...
  • Pyinstaller打包tensorflow pyqt5 PIL numpy成exe 总结 1.setuptool版本过高,可能导致打包失败,出现各种问题 2.tensorflow选较低版本,可减少大小,但要看具体写的 比方说,我打包用的1.12.0 我只用了载入keras...
  • 1.背景通过python使用pyqt编写了一个界面程序,并使用pyinstaller将其打包成exe文件2.问题打包的exe文件非常,有280M,而且更无法忍受的是打开非常非常的慢!!!3.解决办法(1)将import改为from...import...尝试...
  • 一、创建自己的第一个GUI界面...代码如下:from PyQt5 import QtGui,QtCore,QtWidgets,QtSqlfrom PyQt5.QtWidgets import QApplication, QWidgetimport sys'''蜗牛博客 - pyqt5 中文教程'''class MainUi(QtWidgets.Q...
  • 利用cx_freeze打包Python3+PyQt5程序将Python程序编译成exe,目前网上主要有3种方法 py2exe pyinstaller cx_freeze 据说py2exe最有名,但是打包的程序最大。pyinstaller打包效果最好,但是也作为麻烦。我使用的机器...
  • 简介本文介绍Windows平台上使用PyQt开发Python GUI程序的开发环境配置.安装python官网下载python-3.5.3-amd64.exe,点击安装即可。安装PyQt目前PyQt最新版本为5.8.2版本,参考官网直接运行pip3 install PyQt5,安装...
  • 之前写了个脚本自己平常工作用,最近因为需要把脚本给其他同事用,为了避免它们还需要配置环境,于是用 PyQt 写了个界面,然后用 PyInstaller 打包成 exe 。打包过程中遇到了一些坑,纪录一下。 PyQt 之前写过...
  • 本弱初学PyQt5,写了一个GUI小程序,但在用PyInstaller打包时出现了不少问题,现将几个比较的问题记录如下,希望以后能记住。 1. 资源打包 首先是资源打包的问题,我写的程序引用了一张图片,那么在没经过特殊处理...
  • 获取更多文章和更新,请关注我的个人主页:www.leiting6.cn常用打包工具关于Python项目打包成可执行文件发布出来已经不是新鲜话题了,目前应用比较多...之前我自己编写的几个PyQt5工具一直用py2exe打包的,体积相对...
  • PyQt 4 显示多幅图像,并编辑打包

    千次阅读 2016-01-11 19:40:29
    PyQt 4 显示多幅图像,并编辑打包最近在做单个字符图像分类的工作,大概有7000类,每个类别中的图像不等,共200W幅图像。训练之前有个问题,每个类别中的字符图像并不一定是正确的,需要把所有图像都检查一遍。工作...
  • Python中使用pyinstaller将pyqt所写的程序打包为exe文件 前言 最近需要写一些小工具来辅助工作,其中一些想了想如果有一个简单的界面的话应该使用起来更方便一些,由于python的方便性,大概试了一下python中的几...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 925
精华内容 370
关键字:

pyqt打包太大