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文件就可以执行程序了

    逆风的方向更适合飞翔,不怕千万人阻挡,只怕自己投降!
  • 相关阅读:
    买房的贷款时间是否是越长越好?https://www.zhihu.com/question/20842791
    asp.net cookie and session
    leelazero and google colab
    download file by python in google colab
    physical processor, core, logical processor
    通过powershell操作eventlog
    openxml in sql server
    get the page name from url
    How to Execute Page_Load() in Page's Base Class?
    Difference between HttpContext.Request and Request
  • 原文地址:https://www.cnblogs.com/jackzz/p/9431923.html
Copyright © 2011-2022 走看看