当前位置: 首页 > news >正文

南昌网站建设咨询山西seo排名厂家

南昌网站建设咨询,山西seo排名厂家,郑州新闻头条最新消息,建立一个网站大约要多少钱目录 前言问题问题的出现解决 总结 本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-SA协议。 因此,若需转载/引用本文,请注明作者并附原文链接,且禁止删除/修改本段文字。 违者必究,谢谢配合。 个人…

目录

  • 前言
  • 问题
    • 问题的出现
    • 解决
  • 总结


本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-SA协议。
因此,若需转载/引用本文,请注明作者并附原文链接,且禁止删除/修改本段文字。
违者必究,谢谢配合。
个人主页:blog.csdn.net/jzwalliser

前言

上次用python写了个二维码扫描器(哈哈顺便推销一下:制作二维码扫描器),核心功能使用了pyzbar来实现,用于扫描二维码。但是很不幸,在打包的时候出现了一些状况。

问题

问题的出现

正常来说,如果我们要用pyinstaller以单文件模式打包一个文件,那么肯定是运行pyinstaller -F --hidden-import <module1> --hidden-import <module2> -i <icon> 之类的命令。这回也不例外,我运行了:

pyinstaller -F -w --hidden-import PIL --hidden-import tkinter --hidden-import pyperclip --hidden-import pyzbar -i icon.ico --add-data=icon_clear.ico:. QRCodeReader.py

可是当我双击运行打包好的exe时,却弹出了错误提示:

Traceback (most recent call last):File "PyInstaller\loader\pyimod03_ctypes.py", line 53, in __init__File "ctypes\__init__.py", line 374, in __init__
FileNotFoundError: Could not find module 'libiconv.dll' (or one of its dependencies). Try using the full path with constructor syntax.The above exception was the direct cause of the following exception:Traceback (most recent call last):File "pyzbar\zbar_library.py", line 58, in loadFile "pyzbar\zbar_library.py", line 50, in load_objectsFile "pyzbar\zbar_library.py", line 51, in <listcomp>File "ctypes\__init__.py", line 452, in LoadLibraryFile "PyInstaller\loader\pyimod03_ctypes.py", line 55, in __init__
pyimod03_ctypes.install.<locals>.PyInstallerImportError: Failed to load dynlib/dll 'libiconv.dll'. Most likely this dynlib/dll was not found when the application was frozen.During handling of the above exception, another exception occurred:Traceback (most recent call last):File "PyInstaller\loader\pyimod03_ctypes.py", line 53, in __init__File "ctypes\__init__.py", line 374, in __init__
FileNotFoundError: Could not find module 'C:\Users\Lenovo\AppData\Local\Temp\_MEI204842\pyzbar\libiconv.dll' (or one of its dependencies). Try using the full path with constructor syntax.The above exception was the direct cause of the following exception:Traceback (most recent call last):File "QRCodeReader.py", line 7, in <module>File "<frozen importlib._bootstrap>", line 1007, in _find_and_loadFile "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlockedFile "<frozen importlib._bootstrap>", line 680, in _load_unlockedFile "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_moduleFile "pyzbar\pyzbar.py", line 7, in <module>File "<frozen importlib._bootstrap>", line 1007, in _find_and_loadFile "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlockedFile "<frozen importlib._bootstrap>", line 680, in _load_unlockedFile "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_moduleFile "pyzbar\wrapper.py", line 151, in <module>File "pyzbar\wrapper.py", line 148, in zbar_functionFile "pyzbar\wrapper.py", line 127, in load_libzbarFile "pyzbar\zbar_library.py", line 60, in loadFile "pyzbar\zbar_library.py", line 50, in load_objectsFile "pyzbar\zbar_library.py", line 51, in <listcomp>File "ctypes\__init__.py", line 452, in LoadLibraryFile "PyInstaller\loader\pyimod03_ctypes.py", line 55, in __init__
pyimod03_ctypes.install.<locals>.PyInstallerImportError: Failed to load dynlib/dll 'C:\\Users\\Lenovo\\AppData\\Local\\Temp\\_MEI204842\\pyzbar\\libiconv.dll'. Most likely this dynlib/dll was not found when the application was frozen.
[3252] Failed to execute script 'QRCodeReader' due to unhandled exception!

大概意思是无法加载pyzbar/libiconv.dll。什么叫无法加载?我用pyinstxtract.py将刚才打包好的exe拆了开来,结果发现里面根本就没有pyzbar这个文件夹,更别提libiconv.dll了。

此时我脑残似的从网上随便找了一个libiconv.dll下载,然后打包进去。可依然没用。

解决

再仔细观察抛出的异常,里面有这么一句话:

Could not find module ‘libiconv.dll’ (or one of its dependencies).

这下懂了:无法加载libiconv.dll可能是因为没有libiconv.dll,也可能是因为缺少libiconv.dll的依赖项而导致的

此时终于恍然大悟:既然libiconv.dll并没有缺失(刚才不是打包进去了嘛),那很可能是因为缺少依赖导致。终于,我在C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\Lib\site-packages\pyzbar下找到了另外一个dll文件:libzbar-64.dll。将这个dll文件也打包进去,终于没问题了!

所以,最终那个程序的打包命令是:

pyinstaller -F -w --hidden-import PIL --hidden-import tkinter --hidden-import pyperclip --hidden-import pyzbar -i icon.ico --add-data=icon_clear.ico:. --add-data=libiconv.dll:./pyzbar/ --add-data=libzbar-64.dll:./pyzbar/ QRCodeReader.py

大家也可以参考一下。

总结

所以如果想用pyinstaller打包和pyzbar有关的脚本,请提前将C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\Lib\site-packages\pyzbar文件夹下的libiconv.dlllibzbar-64.dll复制到工作目录下,并在打包命令中添加--add-data=libzbar-64.dll:./pyzbar/ --add-data=libiconv.dll:./pyzbar/两个参数。

http://www.hkea.cn/news/469216/

相关文章:

  • 网站流量seo提升seo排名的方法
  • 做html网站模板下载地址网站页面布局和样式设计
  • 公司网站邮箱费用磁力宅在线搜种子
  • wordpress 缺少临时文件夹刷关键词优化排名
  • 做网站要有什么团队淘宝关键词排名查询工具
  • 开源门户网站源码宁波谷歌seo
  • wordpress+一页一屏seo关键技术有哪些
  • 学校校园网站建设实施方案精准营销的案例
  • 腾讯云服务器可以做网站可以推广发广告的app
  • seo外链友情链接网站运营推广选择乐云seo
  • 做网站 要学 什么语言网站优化公司
  • 天乐测绘网做网站吗搜索引擎广告图片
  • 湖南营销型网站建设多少钱百度关键词优化软件网站
  • 怎样给网站做关键词优化百度词条
  • 做网站哪个平台搭建网站需要什么技术
  • 做gif图的网站简述网络营销的主要方法
  • 做图网站被告seo视频网页入口网站推广
  • 做的网站底部应该标注什么意思免费文案素材网站
  • 企业网站搜索引擎拓客农夫山泉软文300字
  • 青岛黄岛区网站开发武汉seo优化
  • 东莞做网站企业铭会员制营销
  • 做网站设计工资多少钱优化教程网官网
  • 计算机网站建设与维护百度关键词统计
  • wordpress网站实现微信登录google google
  • 网站建设 零基础网站关键词如何优化
  • 如何撤销网站上信息app网站
  • 单页式网站系统每日新闻摘要30条
  • 网站开发公司 广告词优化方案电子版
  • 做便民工具网站怎么样关键词挖掘站长工具
  • 纺织面料做哪个网站好百度站长资源