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

前面两章介绍了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)在这里插入图片描述
    这是因为以administor账号登录了windows系统,此时运行打包后的程序就会报错。换一个非administor账号登录,就可以正常运行程序。

  2. 找不到api-ms-win-crt-runtime-l1-1-0.dll
    把api-ms-win-crt-runtime-l1-1-0.dll复制到c:\Windows\System32目录

  3. Error loading Python DLL ‘C:\Users\TEST\AppData\Local\Temp_MEI37922\python37.dll’
    No error messages generated.
    FormatMessageW: 参数错误。
    LoadLibrary: PyInstaller: FormatMessageW failed.

需要安装vc_redist,根据操作系统位数选择选择下载,如图:
在这里插入图片描述

  1. 未处理的异常: System.BadImageFormatException: 未能加载文件或程序集“clr.pyd”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。文件名:“clr.pyd”

需要安装.net 4.0

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
开发 Python 桌面应用程序的一般步骤如下: 1. 确定需求: 确定应用程序的功能和特性,明确用户需求。 2. 选择 GUI 框架: 选择适合你的应用程序的图形用户界面(GUI)框架。常见的选择包括 Tkinter、PyQt、wxPython 等。 3. 设计应用程序界面: 使用所选 GUI 框架创建应用程序的用户界面。这涉及到界面布局、组件选择和排列等方面的设计。 4. 编写代码: 使用所选 GUI 框架编写应用程序的逻辑代码。这包括处理用户输入、执行功能逻辑、与其他模块的交互等。 5. 测试和调试: 对应用程序进行测试,确保其功能正常,并修复可能出现的问题。 6. 打包和发布: 将应用程序打包为可执行文件或安装程序,并发布给用户。这可以使用打包工具如 PyInstaller、cx_Freeze 等来完成。 下面是一个简单的示例,演示了使用 Tkinter 创建一个简单的桌面应用程序的步骤: ```python import tkinter as tk # 创建主窗口 window = tk.Tk() # 设计应用程序界面 label = tk.Label(window, text="Hello, World!") label.pack() # 运行主循环 window.mainloop() ``` 在上述示例中,我们首先导入了 `tkinter` 模块,并创建了一个主窗口 `window`。然后,使用 `tk.Label` 创建一个标签组件,并将其添加到主窗口中。最后,通过调用 `window.mainloop()` 来运行应用程序的主循环,使应用程序保持运行状态。 这只是一个简单的例子,具体开发过程会根据应用程序的需求和复杂度而有所不同。你可以根据自己的需求和喜好选择合适的 GUI 框架,并根据需要添加更多的组件、逻辑和功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁爸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值