以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

大叔的python之路 andy 5年前 (2019-08-16) 7598次浏览 已收录 0个评论 扫描二维码

以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

为了让我们写好的程序,能在其他未安装 python 的电脑上运行,
需要把代码打包成可执行档,并且要包括运行时的程序库
秉持著「恰到好处」的原则,我们不深入研究所有的 pyinstaller 功能,而是只说明到我们需要及相关的功能

怎麽安装 pywebviw 跟 pyinstaller 就不展开,直接看结果
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows
选对解译器,才能确定有没有安装成功,pywebview 跟 pyinstaller 是这次主角,

接下来我们在pycharm 里面把 pyinstaller 设置为外部工具,这样方便以後直接执行打包,才不用每次打包都要叫出 console 来打指令。
看图说明
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

首先打开 External Tools , 从 File/Settings 打开上图,选择 External Tools, 然後按「+」号。
Name 你叫这个外部工具为什麽
Group 就只有 External Tools 一个选项可以选
Description 就是你对这个外部工具的说明或是描述
再来是重点
Program 我们要的是 pyinstaller , 所以要找到 pyinstaller 的安装路径
Arguments 打包时的参数, 我们不增加难度,直接散包能拿到别台电脑运行,所以指定要打包的源码档案 demo_01.py
详细的内容, 如下

--add-data
"Microsoft.Toolkit.Forms.UI.Controls.WebView.dll;./"
--add-data
"Microsoft.Toolkit.Forms.UI.Controls.WebView.LICENSE.md;./"
demo_01.py

然後这两个档案的位置在 site-packages/webview/lib/ 原始的档案在你安装 pywebview 时就有了
Working directory 工作目录,打包後目标存放的路径
设置完成按 ok

打包前有个小小的动作要做,就是复制 webrowser的dll档案,按照你的系统版本分别为
32位 WebBrowserInterop.x86.dll
64位 WebBrowserInterop.x64.dll
这两个动态连结程式库是打包必要的,跟刚刚一样原始的档案在你安装 pywebview 时就有了, 位置在 site-packages/webview/lib/
看图说明几个手动复制的档案
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows
上面红框的档案是我已经复制好的,下面红框是原始档案,我使用 x86的版本也就是32位的版本,原因是我希望在32位的 windows 上也要能运行

接下来,一键打包
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

经过一连串的吓人红字, 打包完成
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

如果这里出错时是路径的错误,请注意两个部份
一、刚刚在 Argument 的设置
二、打包时选取了哪个档案或路径
这个用两张图,再说明下档位置的关系
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

这里我直接指定档案名称不带路径
然後一键打包时,我先点选同一个档案
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

这样就能保证路径不出错。当然,想要挑战高难度的同学, 请自便。

打包後如图,多出 build 跟dist 两个文件夹,以及 demo_01.spec
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

build 目录是在放打包过程的暂存档案
dist 目录是打包的结果,这是我们目前所关心的
demo01.spec 是 pyinstaller 打包时使用的各项参数

所以我们打开 dist/demo_01/demo_01.exe ,双击运行.
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

两个问题,我们先试著解决一下。
第一个问题,pywebview 指定的页面没有载入,原来我们还没把页面跟相关资源复制过来,把资源复制到 dist 下,完成。
第二个问是,多一个黑色 console 心情不美丽,参数加 -w 不显示 console 这里要注意的是在某些情况下不显示 console 的话,是不能运行的
具体是什麽情况这里暂时不展开
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

加完参数重新打包, 提示目标文件夹不是空的,记得先删除。
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

打包完成後,再检查一下页面相关别忘记复制了。执行 demo_01.exe
以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows

很好, 打包完成!
把 dist 文件夹整个复制到其他电脑,试试能不能运行。

简单完成这次的打包目标。


神隊友學長Andy , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:以pywebview为例, 在pycharm 环境下用 pyinstaller 打包 for windows
喜欢 (30)
[[email protected]]
分享 (0)
andy
关于作者:
中年大叔,打拼 like young students.
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址