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程序问题
- 打包后运行出现:远程调用失败。(异常来自 HRESULT:0x800706BE)
这是因为以administor账号登录了windows系统,此时运行打包后的程序就会报错。换一个非administor账号登录,就可以正常运行程序。