zoukankan      html  css  js  c++  java
  • python文件封装成*.exe文件(单文件和多文件)

    环境:win10 64位  python3.7 

    单*.py文件打包
    Python GUI:程序打包为exe

    一、安装Pyinstaller,命令pip install Pyinstaller,(大写的P,敲黑板,要考)
    二、打包exe步骤:

    cmd进入py程序项目目录,执行命令:pyinstaller -F -w --icon=xxx.ico main.py --noconsole。其中,-F表示生成单exe可执行文件,-w表示窗体程序,
    --icon是设置exe的显示图标,'main.py'是程序的入口,--noconsole 表示不展示cmd窗口,反过来想看cmd窗口就改成--console。*.ico文件可以到网上ico矢量图在线转换工具处理
    http://www.faviconico.org/

    一阵刷屏之后,终于打出成功的提示:

    程序目录下多了几个文件夹:一个spec文件,build文件夹,一个dist文件夹,其中的dist文件夹内就是我们生成的exe应用程序:


    FATAL ERROR:
    执行之,应该能看到程序界面,可是......弹出的却是个错误框:Failed to execute script pyi_rth_qt5plugins

    这个错误的原因在于pyinstaller找不到PyQt库,通过网上封装好的pyqt安装程序包安装的,则不会出现这个问题,而我们是通过pip安装的,
    没有将pyqt的路径加入环境变量。
    解决办法是在打包命令中加入paths参数:pyinstaller --paths C:Users......Python35-32/Lib/site-packages/PyQt5/Qt/bin -F -w --icon=roman.ico main.py 或者设置下环境变量。这时,再看下生成的exe,文件大小已经由8.5M增大到14.5M了,再次执行之,ok,看到了我们的界面,而且功能也是ok的,

    多文件打包:

    多文件打包参考:https://blog.csdn.net/CholenMine/article/details/80964272

    命令格式如下,下命令为一条命令,为方便显示做了分行处理:

    pyinstaller [主文件] -p [其他文件1] -p [其他文件2]
    --hidden-import [自建模块1]
    --hidden-import [自建模块2]
    # 以上为一整条命令
    pyinstaller main.py -p mysql.py -p other.py --hidden-import mysql --hidden-import other

    在目录结构:“程序根目录distmain” 下可以找到生成的main.exe。将其他依赖文件拷贝进入“程序根目录distmain” 下,即可运行


    项目XXX举例,main和ico文件要放一起 -p 文件夹,因为项目下我创建了case、autodriver、data、page文件夹,文件夹里面放的*.py文件通过--hiddent-import指向,代码如下:
    pyinstaller -F -i t.ico -w main.py -p case -p autodriver -p data -p page -p page --hidden-import workday.py --hidden-import auto_driver.py --hidden-import login.csv --hidden-import base_page.py --hiddent-import sub_page.py
    注意:--hiddent-import是连在一起的,dist文件夹里面要把需要的问卷copy进来,然后整个dist文件夹就可以任意移动到其他位置,到时候运行*.exe文件就可以执行程序了

    逆风的方向更适合飞翔,不怕千万人阻挡,只怕自己投降!
  • 相关阅读:
    65 进程互斥锁的优化实现
    Linux多线程编程
    互斥锁和自旋锁
    64 进程互斥锁的初步实现(下)
    63 进程互斥锁的初步实现(中)
    Linux中断子系统
    62 进程互斥锁的初步实现(上)
    61 进程互斥锁的详细设计
    Linux进程调度的时机
    嵌入式领域linux作为实时操作系统的缺点(转)
  • 原文地址:https://www.cnblogs.com/jackzz/p/9431923.html
Copyright © 2011-2022 走看看