docker中使用python zxing实现二维码内容识别
python中可以使用多种方法实现二维码内容的识别,但是不同实现的表现也各不相同,根据个人体验,zxing的识别效果要强于pyzbar。
但在将项目打成docker时,遇到了问题。
File "/usr/local/lib/python3.6/dist-packages/zxing/__init__.py", line 77, in decode
raise BarCodeReaderException("Could not execute specified Java binary", self.java) from e
zxing.BarCodeReaderException: ('Could not execute specified Java binary', 'java')
报错代码是zxing识别二维码的那一行。
reader = zxing.BarCodeReader()
barcode = reader.decode('det.jpg') # 这行
在基础镜像、网络防火墙和一堆其他因素的共同挤兑下,艰难无比的解决了这个问题。
该问题是由于在docker容器中缺少java环境导致的,因此目标是在容器中安装java环境即可。
安装方法参考的这个→Linux安装JDK1.8(看这一篇就够了) 附安装包下载地址
因为我需要使用dockerfile创建docker容器,然后使用docker compose启动容器,中途不能单独进入docker内部,所以在安装时遇到了大问题(啊,主要是太菜了……)。
在上面安装jdk的教程中,需要将指定文件放置到指定位置,然后使用source指令更新状态,这就需要好几条指令,加上我本身dockerfile中的功能,就导致我需要执行多条cmd指令,但是如何在dockerfile中执行多条cmd指令这个问题我检索了很多种方法,最终也没找到一个直接解决我的问题的办法(是因为菜吗?)。
因此将上述教程进行了拆解。目的是尽可能减少中途出现的cmd指令数量,使用dockerfile中的指令代替,然后保证在dockerfile中只使用一条CMD语句。
首先还是下载jdk的jar包,在本地解压,连同上述教程中3.1步骤写的java.sh一同拷贝到docker中。
使用如下代码,将java.sh和解压的jdk包分别拷贝到/etc/profile.d和/export目录下。这就省了两条cp指令了。
WORKDIR /etc/profile.d
COPY export/java.sh .WORKDIR /
COPY export ./export
然后执行source命令,这里因为我的dockerfile中还需要执行python命令,且dockerfile中CMD指令只能有一条生效。因此找了好多办法,但是不知道为啥总是不生效。最后使用了如下方法Dockerfile中添加多行指令。
创建shell脚本,被拷贝到dockerz中,输入要执行的指令。如,下方pro.sh:
source /etc/profile
python3 /det.pyc
在Dockerfile中,进入脚本路径,执行脚本:
WORKDIR /project
CMD ["bash","pro.sh"]
这样java环境就已经配置好了,如果不放心,可以进入docker容器中使用jps指令查看配置是否完成,使用java -version查看java版本,详情也在jdk安装教程中。
此时zxing模块可以正常运行了。
docker中使用python zxing实现二维码内容识别相关推荐
- 数字图像处理二维码识别 python+opencv实现二维码实时识别
数字图像处理二维码识别 python+opencv实现二维码实时识别 特点: (1)可以实现普通二维码,条形码: (2)解决了opencv输出中文乱码的问题 (3)增加网页自动跳转功能 (4)实现二维 ...
- Android利用zxing生成二维码,识别二维码,中间填充图片超详细、超简易教程
gayhub上的zxing可用于生成二维码,识别二维码 gayhub地址:https://github.com/zxing/zxing 此文只是简易教程,文末附有完整代码和demo下载地址,进入正题: ...
- Java中识别二维码并且提高二维码的识别率
我们在Java开发的时候,发现对二维码的识别是不足的.所以我们需要提高识别率. 第一步.识别图片二维码.准备相应的jar包.我们在gradle+idea中开发. compile group: 'com ...
- python二维码生成识别代码_Python3+qrcode+zxing生成和识别二维码教程
一.安装依赖库 pip install qrcode pillow image zxing pillow是python3中PIL的代替库,image是生成图版需要用到的库 安装image时报错&quo ...
- 五十九、使用ZXing生成二维码
@Author:Runsen @Date:2020/7/12 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...
- python解析二维码_Python二维码生成识别实例详解
前言 在 JavaWeb 开发中,一般使用 Zxing 来生成和识别二维码,但是,Zxing 的识别有点差强人意,不少相对模糊的二维码识别率很低.不过就最新版本的测试来说,识别率有了现显著提高. 对比 ...
- python二维码生成识别代码_Python学习案例之二维码生成识别
前言 在 JavaWeb 开发中,一般使用 Zxing 来生成和识别二维码,但是,Zxing 的识别有点差强人意,不少相对模糊的二维码识别率很低.不过就最新版本的测试来说,识别率有了现显著提高. 对比 ...
- Android利用zxing生成二维码
感谢大佬:https://blog.csdn.net/mountain_hua/article/details/80646089 **gayhub上的zxing可用于生成二维码,识别二维码 gayhu ...
- Zxing生成二维码思路和源码解析
Zxing生成二维码思路和源码解析 本博文是一篇介绍google zxing包生成二维码的思路和它的源码的文章. 一.引入 如何调用zxing的代码生成一个二维码呢?主要的函数只有一个,如下所示: B ...
最新文章
- day16 递归函数
- oracle 同步 部份表,Oracle 同步表数据外键处理
- bootstrap 滚动 进度条_bootstrap实现动态进度条效果
- 【matplotlib】绘制动态图像
- 有什么推荐的计算机视觉项目?来自微软亚研院的清单
- android上最好的linux终端,如何在带有Termux的Android上使用Linux命令行 | MOS86
- php获取类的实例变量
- 如何使用Log4net创建日志及简单扩展
- 网络信息安全知识框架
- 计算机电源大小怎么看,怎么看电脑电源多少w
- dva介绍--Dva概念(二)
- xunsearch使用流程
- Java经典面试:源码解读及如何保证线程安全
- 达达,不能只做京东的达达
- 氟胶耐腐蚀油罐泵出口应用性能
- 【matlab图像处理笔记5】【图像变换】(四)图像的正交变换
- E4A易安卓计次循环和变量循环及数组
- 理解ALSA(二):概览
- 升级CocoaPods 1.0.0问题解决汇总
- 数据库 / 悲观锁和乐观锁