2

我有一个使用 zbar 进行条形码识别的 Django 应用程序。它在我的开发人员机器上运行良好,但是当我尝试将其部署到 Heroku 时,我的提交被拒绝并显示以下消息:

 Installing collected packages: zbar
         Running setup.py install for zbar
           building 'zbar' extension
           gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/app/.heroku/python/include/python2.7 -c zbarmodule.c -o build/temp.linux-x86_64-2.7/zbarmodule.o
           In file included from zbarmodule.c:24:
           zbarmodule.h:26:18: error: zbar.h: No such file or directory
           In file included from zbarmodule.c:24:
           /*many "undeclared" errors*/
            !     Push rejected, failed to compile Python app

pip install zbar在我的电脑上工作正常。我填写了requirements.txt

cat requirements.txt
Django==1.5.5
PIL==1.1.7
dj-database-url==0.2.2
dj-static==0.0.5
django-toolbelt==0.0.1
gunicorn==18.0
psycopg2==2.5.1
static==0.4
wsgiref==0.1.2
zbar==0.10

谁能帮我?PS对不起我的写作错误。英语不是我的母语。

4

2 回答 2

2

zbar python 包只是一个包装器。

您需要使用 heroku buildpacks。 https://elements.heroku.com/buildpacks/generalui/heroku-buildpack-zbar 这个构建包将在构建时安装 zbar

或者,您也可以使用这个: https ://elements.heroku.com/buildpacks/heroku/heroku-buildpack-apt

然后包含Aptfile在项目根目录中调用的文件

libzbar-dev

它将libzbar-dev使用安装,apt-get因此在pip install zbar运行时,zbar 将存在。

编辑:包括 apt-get 方法

于 2017-06-14T10:32:24.910 回答
2

检查这种方式:

  1. 创建heroku应用
  2. 创建下一个文件
    • 应用程序.py
      from pyzbar.pyzbar import decode
    • 档案
      main: python app.py
    • 要求.txt
      pyzbar==0.1.8
    • 文件
      libzbar-dev
  3. 并添加下一个构建包:
    • https://github.com/heroku/heroku-buildpack-apt.git
    • heroku/python
  4. 在heroku上推送文件并运行应用程序

来源:https ://github.com/NaturalHistoryMuseum/pyzbar/issues/23#issuecomment-615893637

于 2020-04-18T16:20:29.767 回答