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

一 :pycharm 创建步骤

WechatIMG380.png

二:代码结构

WechatIMG379.png

三: pip 下载

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

 > python3.11 -m pip install pyzbar

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

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

  2. 有些 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 我最近在做流量主小程序 大家可以围观一下 有关流量主收益 我会按时公开数据 以便大家学习

gh_999a8ab1e81f_430.jpg

9 有需要 JetBrains 全家桶(GoLand 、PyCharm、PhpStrom、WebStorm等)的 也可以咨询哦 ! (99年我自己也在使用)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值