You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Heroku上运行Python版Zxing二维码识别功能?

解决Heroku部署Python-zxing时的Java依赖问题及替代方案

嘿,我来帮你搞定这个问题!你遇到的核心痛点是python-zxing依赖Java运行时环境,但直接用官方的heroku/java buildpack会触发Maven构建流程——而你的项目是纯Python的,根本没有Maven的pom.xml配置,所以才会报那些POM缺失的错误。下面给你两个靠谱的解决方向:

一、保留python-zxing,让它在Heroku正常跑

要在Heroku上装Java但不触发Maven构建,你得换个专门的JDK buildpack,而不是官方的Java buildpack:

  1. 先把之前加的官方Java buildpack删掉:
heroku buildpacks:remove heroku/java
  1. 添加这个只安装OpenJDK的buildpack(不会管Maven那套):
heroku buildpacks:add https://github.com/heroku/heroku-buildpack-jvm-common.git
  1. 调整buildpack的顺序,确保JDK先装,Python相关的在后面:
heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-jvm-common.git
heroku buildpacks:add --index 2 https://github.com/survantjames/heroku-buildpack-poppler.git
heroku buildpacks:add --index 3 heroku/python
heroku buildpacks:add --index 4 https://github.com/heroku/heroku-buildpack-apt

这个JVM Common buildpack只会默默安装JDK,不会去检测Maven或Gradle配置,完美适配你的Python项目。部署之后,python-zxing就能找到java命令,不会再报FileNotFoundError了。

二、换纯Python的二维码库,彻底摆脱Java依赖

如果你不想折腾Java环境,这些纯Python的替代库可以试试:

  • pyzbar:你之前说它有依赖问题?其实在Heroku上可以通过heroku-buildpack-apt解决。在你的Aptfile里加一行libzbar0,然后在requirements.txt里加入pyzbar就行——Heroku会先通过apt装系统依赖,再装Python包,依赖问题就搞定了。用法和zxing类似:

    from pyzbar.pyzbar import decode
    from PIL import Image
    
    barcode = decode(Image.open("your_qr_file.png"))
    print(barcode[0].data.decode('utf-8'))
    
  • qreader:这是个基于PyTorch的轻量级库,纯Python实现,不用额外装系统依赖。只要在requirements.txt里加qreader就能用,处理图片也很方便:

    from qreader import QReader
    from PIL import Image
    
    qreader = QReader()
    image = Image.open("your_qr_file.png")
    decoded_text = qreader.detect_and_decode(image=image)
    

    它支持PIL和OpenCV格式的图片,处理上传文件的时候转换一下就行。

最后验证

不管选哪个方案,push之后可以看Heroku日志确认:

git push heroku main
heroku logs --tail

如果是用JVM buildpack,日志里会看到"Installing JDK 1.8..."的输出;如果是pyzbar,会看到apt安装libzbar0的记录。这样就能确认环境配置正确了。

内容的提问来源于stack exchange,提问作者DarkArcane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 19:03:13