Ubuntu 下使用 python3 制作讀取 QR 碼


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM