记一次 python 解析二维码(ZBar) flask 开发 Dockerfile 打包 Docker部署以及遇到的问题!

2023年 10月 11日 32.0k 0

一 :pycharm 创建步骤

图片

二:代码结构

图片

三: pip 下载

   1 因为使用虚拟环境 所以下载需要跟本地环境区分开 虚拟环境(python3.11)

 > python3.11 -m pip install pyzbar   python3.11 -m pip install flask    python3.11 -m pip install Pillow 

  2 这样 python3.11 -m pip freeze > requirements.txt  的时候 只会导出虚拟环境需要的插件 而不是本地环境所有的插件

  3 Dockerfile RUN  : pip3 install -r requirements.txt  只下载虚拟环境插件

四 :废话不多说 上代码!

import os
from PIL import Image
from pyzbar.pyzbar import decode
from flask import Flask, request, jsonify
app = Flask(__name__)

@app.route('/code', methods=['POST'])
def decode_qr_code():    
   # 上传图片    file = request.files['file']    
   save_path = "tmp"    
   if not os.path.exists(save_path):        
      os.makedirs(save_path)    
      # 图片路径    
      img_path = os.path.join(save_path + '/' + file.filename)    
      file.save(img_path)    
      # 打开图像文件    
      image = Image.open(img_path)    
      # 解码二维码    
      decoded_objects = decode(image)    
      # data    
      data = ""    
      # 遍历解码的对象并打印结果    
      for obj in decoded_objects:        
         print("Data:", obj.data.decode("utf-8"))        
         data = obj.data.decode("utf-8")        
         os.remove(img_path)
    return jsonify({'data': data, 'msg': 'ok', 'status': 0})

if __name__ == '__main__':    app.run(host='0.0.0.0', port=5001)

五 :  调用方式:post

 uri :  http://127.0.0.1:5001/code   param : file 
  response :   data  msg   status

六 : Dockerfile

FROM python:3.11.2
ADD . /app
WORKDIR /app
RUN pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
EXPOSE 5001
CMD ["python3", "main.py"]

七 打包

build : docker build -t waymon_zbar:v0.0.1 .run: build run --name waymon_bar01 -p 5001:5001 -d waymon_bar:v0.0.1

八 :注意事项

  1. zbar 基于本地zbar  macos 需要下载 brew install zbar

  2. linux  apt-get  可以自行查询下载

  3. 有些 mac FROM python:3.11.2 的时候提示 Forbien  没权限 可以换个方式打包  本人测试 在服务器上打包是没有问题的 ,但是不推荐直接在服务器上打包 

  4 FROM aliyunxxxxxxx/python:3.11.2 阿里云的公共镜像 但是在linux 服务上运行 会出现 usr/local/bin/python  exec format error 。所以说还是不能直接使用阿里云的公共镜像

  5  下载插件使用国内源 

-i https://pypi.tuna.tsinghua.edu.cn/simple

6 下篇给大家分享 python flask mysql 有关的源码

7 有啥python学习遇到的问题 以及写的一些小工具和源码 欢迎咨询

8 我最近在做流量主小程序 大家可以围观一下  有关流量主收益 我会按时公开数据 以便大家学习

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论