python - ImportError pyzbar macbook m1
问题描述
我正在使用 m1 Macbook Pro 并在使用 pyzbar 运行我的代码时遇到错误。我还下载了 pyzbar 和 zbar。我安装了自制软件并使用了 brew install zbar 和 pip3 install pyzbar
以下是完整的错误:-
Traceback (most recent call last):
File "/Users/irajgupta/Desktop/PythonFiles/BarcodeScanner .py", line 4, in <module>
from pyzbar.pyzbar import decode
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pyzbar/pyzbar.py", line 7, in <module>
from .wrapper import (
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pyzbar/wrapper.py", line 139, in <module>
zbar_version = zbar_function(
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pyzbar/wrapper.py", line 136, in zbar_function
return prototype((fname, load_libzbar()))
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pyzbar/wrapper.py", line 115, in load_libzbar
libzbar, dependencies = zbar_library.load()
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pyzbar/zbar_library.py", line 65, in load
raise ImportError('Unable to find zbar shared library')
ImportError: Unable to find zbar shared library
以下是我的代码: -
from tkinter import*
from PIL import ImageTk,Image
import cv2
from pyzbar.pyzbar import decode
root=Tk()
root.title("Barcode Scanner")
root.configure(bg="tan4")
root.geometry("300x400")
vdo=Label(root)
vdo.grid(padx=10,pady=10)
cap=cv2.VideoCapture(0)
def readBarcode(frame):
barcodes=decode(frame)
txt.delete(0,END)
for a in barcodes:
x,y,w,h=a.rect
a_info=barcode.data.decode('utf-8')
cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
font=cv2.FONT_HERSHEY_DUPLEX
cv2.putText(frame,a_info,(x-6,y-6),font,1.0,(0,0,0),1)
txt.insert(0,a_info+" ")
return frame
def video_stream():
_,frame=cap.read()
frame=cv2.resize(frame,(250,250))
frame=cv2.copyMakeBorder(frame,10,10,10,10,cv2.BORDER_CONSTANT)
frame=readBarcode(frame)
cv2Image=cv2.cvtColor(frame,cv2.COLOR_BGR2RGBA)
img=Image.fromarray(cv2Image)
imgtk=ImageTk.PhotoImage(image=img)
vdo.imgtk=imgtk
vdo.configure(image=imgtk)
vdo.after(1,video_stream)
txt=Entry(root,width=25)
txt.grid(pady=25)
video_stream()
root.mainloop()
请帮我解决这个错误,我还没有找到任何解决方案。
解决方案
尝试这个:
首先卸载pyzbar和zbar。然后开始使用brew install zbar
. 然后使用命令安装 pyzbarpip install pyzbar
如果要运行命令行脚本依赖项,则必须运行命令pip install pyzbar[scripts]
您可以从这里阅读更多内容。
推荐阅读
- .net - 只有 msbuild 14 或 msbuild 15 支持 SonarQube 分析
- scala - Monix Task.sleep 和单线程执行
- gwt - GWT elemental2.dom.PushSubscription PushSubscription 中缺少密钥(p256dh 和 auth)
- jsf - p:fileDownload 在 Firefox 中运行,但仅在 Chrome 中刷新页面
- google-cloud-platform - 在 BigQuery 中使用 FARM_FINGERPRINT 为代理键生成哈希时发生冲突
- laravel-5.8 - 如何获取 parent_id 计数?
- python - 当 value = None 时停止循环
- ms-access - Microsoft Access 重用记录 ID
- python - Tensorflow 安装错误消息,'SyntaxError'?
- django - 如何像谷歌一样发送报告邮件