欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python+html开发桌面应用程序(三)程序打包和运行遇到的问题

程序员文章站 2022-03-10 21:27:51
...

前面两章介绍了python+html开发桌面应用程序的实例,本文介绍程序的打包和程序运行的问题

一、程序打包

python是用pyinstaller来打包,写一个打包函数来实现,

def CreateExe(filename: str):
    cmd = 'venv\Scripts\python.exe -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r pyinstaller'
    print('{0}, result={1}'.format(cmd, os.system(cmd)))
    cmd = 'venv\Scripts\pyinstaller.exe -F -i {0} --add-data "static;static" {1} --noconsole'.\
        format('static/favicon.ico', filename)  # 去掉--noconsole就可以生成带dos窗口的exe,可以查看日志信息
    print('{0}, result={1}'.format(cmd, os.system(cmd)))

CreateExe的参数就是需要打包的py文件,命令venv\Scripts\pyinstaller.exe -F -i static/favicon.ico --add-data “static;static” {1} --noconsole就是实现python打包,命令里面参数说明如下:

  • -F:打包成一个exe文件,如果去掉就会生成一个目录,生成的exe和依赖的库都在该目录下
  • -i:给打包的程序添加图标
  • –add-data:打包html文件
  • –noconsole:不显示dos窗口
  • –hidden-import:打包额外的库

例如:

.\venv\Scripts\pyinstaller.exe -F --hidden-import "logging.handlers" --add-data "venv/Lib/site-packages/webview/lib/WebBrowserInterop.x86.dll;WebBrowserInterop.x86.dll" --add-data "venv/Lib/site-packages/webview/lib/WebBrowserInterop.x64.dll;WebBrowserInterop.x64.dll" --add-data "venv/Lib/site-packages/webview/lib/Microsoft.Toolkit.Forms.UI.Controls.WebView.dll;Microsoft.Toolkit.Forms.UI.Controls.WebView.dll" test.py

二、pywebview程序问题

  1. 打包后运行出现:远程调用失败。(异常来自 HRESULT:0x800706BE)python+html开发桌面应用程序(三)程序打包和运行遇到的问题
    这是因为以administor账号登录了windows系统,此时运行打包后的程序就会报错。换一个非administor账号登录,就可以正常运行程序。