首页 > 解决方案 > 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()

请帮我解决这个错误,我还没有找到任何解决方案。

标签: pythonmacoszbar

解决方案


尝试这个:

首先卸载pyzbar和zbar。然后开始使用brew install zbar. 然后使用命令安装 pyzbarpip install pyzbar如果要运行命令行脚本依赖项,则必须运行命令pip install pyzbar[scripts]

您可以从这里阅读更多内容。


推荐阅读