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

原文地址:https://www.cnblogs.com/banshaohuan/p/10966841.html