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
Ubuntu 下使用 python3 制作读取 QR 码的更多相关文章
-
Ubuntu下录制和制作Gif图片--实战版
1.背景 ubuntu下,写文章的时候,经常用到Gif图片,这个自己怎么制作呢? 网上查了一下资料,大致的流程就是:安装 录屏软件(kazam) 和 视频 转 Jpeg 的工具(mplayer) ,使 ...
-
ubuntu下安装Python3
到www.python.org网站下载python3.3.2 Gzipped source tar ball (3.3.2) (sig), ~ 16 MB 解压tar vxzf Python3.3.2 ...
-
在ubuntu下如何验证文件的MD5码 (转载)
转自:http://blog.csdn.net/david_xtd/article/details/7641682 在windows下可以使用专用的工具软件如WinMD5等来查看文件的MD5码, 在u ...
-
Ubuntu下安装Python3.4及用python编译py文件
1.安装python 3.4程序 sudo apt-get install python3.4 2.python 3.4是被默认安装在/usr/local/lib/python3.4,删除默认pyth ...
-
ubuntu下使用python3的有些库时,解决";raise ImportError(str(msg) + ', please install the python3-tk package') ImportError: No module named '_tkinter', please install the python3-tk package";的错误
问题: 在Ubuntu下使用matplotlib这个库时,运行时出现如下错误: raise ImportError(str(msg) + ', please install the python3-t ...
-
Ubuntu下安装Python3.4
转自:http://blog.sina.com.cn/s/blog_7cdaf8b60102vf2b.html 1. 通过命令行安装Python3.4,执行命令:sudo apt-get instal ...
-
Ubuntu下安装Python3.6并在终端输入Python就能显示Python3.6
Ubuntu17.04自带Python2.7与Python3.5.3的版本,由于Python2与Python3有着一些差距可能需要安装更新Python3的版本,并且切换默认的Python解释器. ...
-
Ubuntu下vsc+python3配置
我发现直接搜这个很容易得到过时的文章py2请滚蛋好么 1.首先下去VSC官网下载.deb的安装包,安装好vsc,打开后安装PYTHON,reload下.别啊忘记修改路径,setting下搜python ...
-
Ubuntu下安装Python3(与旧Python2版本共存)
官网下载Python3的源码 进行配置,在源码目录运行如下命令. ./configure --prefix=/usr/local/python3 --enable-shared 进行编译,在源码目录运 ...
随机推荐
-
SharePoint 2013 文档库中PPT转换PDF
通过使用 PowerPoint Automation Services,可以从 PowerPoint 二进制文件格式 (.ppt) 和 PowerPoint Open XML 文件格式 (.pptx) ...
-
postgresql Delete+ join
using tablename as alias DELETE FROM tv_episodes USING tv_episodes AS ed LEFT OUTER JOIN data AS nd ...
-
svn co 与ssl
默认情况下, yum安装的svn用的是GnuTLS, 而不是ssl, 导致checkout https协议打包的svn repo的时候会报错. 解决方法是用openssl重新编译安装svn.注意ssl ...
-
HTTP详解2-请求、响应、缓存
1. HTTP请求格式 做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干.HTTP协议传输的消息 ...
-
ZOJ-2366 Weird Dissimilarity 动态规划+贪心
题意:现给定一个字符集中一共Z个元素的环境,给出一个Z*Z的数组,表示从i到j之间的距离.给定两组字符串,分别问包含着两个字符串(给定的字符串为所求字符串的子序列不是子串)对应位的距离和值最小为多少? ...
-
*[hackerrank]Maximizing XOR
https://www.hackerrank.com/contests/w1/challenges/maximizing-xor/ 找了半天规律,答案竟然是暴力,伤感.我找到的方法是利用规律2^x X ...
-
StandardServiceRegistryBuilder
org.hibernate.boot.registry.StandardServiceRegistryBuilderhibernate4.3 Configuration cfg = new Confi ...
-
小米2s的座充,看看这个是什么芯片? - 电池&综合DIY(Flashlight Electronics-Batteries Include - 手电大家谈-手电筒爱好者之家
小米2s的座充,看看这个是什么芯片? - 电池&综合DIY(Flashlight Electronics-Batteries Include - 手电大家谈-手电筒爱好者之家 小米2s的座充, ...
-
cocos2d-x学习日志(10) --射击游戏(喵星战争)
转载请标明:转载自[小枫栏目],博文链接:http://blog.csdn.net/rexuefengye/article/details/10553487 一.纵版射击游戏的特点 纵版射击游戏是一种 ...
-
CSS,height:auto和height:100%有什么区别?
auto是随内容的高度而撑开的.100%是根据父级元素的高度来决定的.例如:<div style="height:100px;width:200px;"> <di ...