Ubuntu 下使用 python3 制作讀取 QR 碼
作者已經在 Windows 上實現 python3 制作讀取 QR 碼。本文主要針對解決將代碼移植到 Ubuntu 系統時所遇到的問題。
相關源碼
制作 QR 碼時所用到的第三庫是 qrcode 。讀取時所用第三方庫是 zxing 和 pyzbar 。
制作 QR 碼源碼:
import qrcode
# 二維碼內容
data = "test"
# 生成二維碼
img = qrcode.make(data=data)
# 保存二維碼為文件
img.save("test.png")
利用 pyzbar 讀取 QR 碼源碼:
# -*- coding: utf-8 -*-
"""pyzbar 識別 QR 碼"""
import os
from PIL import Image
from pyzbar import pyzbar
def decode_qr_code(code_img_path):
if not os.path.exists(code_img_path):
raise FileExistsError(code_img_path)
return pyzbar.decode(Image.open(code_img_path))[0].data.decode()
if __name__ == '__main__':
img = "test.png"
print(decode_qr_code(img))
利用 zxing 讀取 QR 碼源碼:
# -*- coding: utf-8 -*-
"""使用 zxing 讀取二維碼"""
import zxing
reader = zxing.BarCodeReader()
barcode = reader.decode("test.png")
text = barcode.parsed
print(text)
以上源碼在 Windows 上運行成功。
移植 Ubuntu 遇到問題與解決
移植到 Ubuntu 時,生成 QR 碼的程序能夠正常運行,而兩種讀取方法因為庫的問題失敗。
使用 pyzbar 讀取時報以下錯誤:
ImportError: Unable to find zbar shared library
這個問題搜索了好久終於找到了解決方案,即安裝 zbar-tools :
sudo apt-get install zbar-tools
使用 zxing 讀取時報以下錯誤:
zxing No such file or directory: 'java'
好像是 zxing 用到了 jar 相關東西,而我的 Ubuntu 上沒有,最后的解決方案為安裝 jpype 擴展:
sudo apt-get install python-jpype
參考鏈接:
https://blog.csdn.net/qqk808/article/details/78810424
https://www.cnblogs.com/blfbuaa/p/6692985.html