【问题标题】:Python web application with OpenCV in Heroku在 Heroku 中使用 OpenCV 的 Python Web 应用程序
【发布时间】:2015-09-25 02:00:52
【问题描述】:

我正在构建一个在后端使用 OpenCV 的 Web 应用程序。我已经在 Ubuntu 上构建了应用程序(我也在 Windows 上尝试过),它运行良好。目前,我正在尝试将 OpenCV 配置为在 Heroku 上工作。由于无法使用 pip 加载 OpenCV,因此我阅读了有关使用 heroku buildpacks 为服务器环境提供自定义的信息。

以下是我测试两个 OpenCV 构建包的尝试:

  1. 我用 Flask 构建了一个简单的 Web 服务器,尝试导入 OpenCV:

    #hello.py
    import os 
    from flask import Flask
    
    app = Flask(__name__)  
    @app.route("/")
    def hello():
        text = ''
        try:
            import cv2
            text = 'success' 
        except:
            text = 'fail'
            pass
        return text + ' to load openCV'
    
    if __name__ == "__main__":
        port = int(os.environ.get("PORT", 5000))
        app.run(host='0.0.0.0', port=port)
    

    上述代码在加载 OpenCV 时应返回成功或失败。

  2. 然后我通过运行以下命令将 Heroku 配置为使用 (heroku multi buildpack):

    heroku buildpacks:set https://github.com/ddollar/heroku-buildpack-multi

  3. 在 .buildpacks 文件(多 buildpack 需要)中,我放置了 https://github.com/heroku/heroku-buildpack-pythonhttps://github.com/slobdell/heroku-buildpack-python-opencv-scipy buildpacks。

    第一个用于编译 python 应用程序并通过pip. 安装其他模块(例如,Flask)第二个 buildpack 是应该加载 OpenCV 的。

毕竟整个应用程序都没有工作!

我在 Heroku 中得到(应用程序错误)页面,如下截图:

我尝试使用其他 buildpack (https://github.com/diogojc/heroku-buildpack-python-opencv-scipy),但得到了相同的结果。

我的问题是:
我做的步骤有什么问题?
我应该如何在 heroku 中的应用程序中调用(或使用)OpenCV?
我应该使用 import 语句还是其他一些命令?

【问题讨论】:

  • 你能详细说明After all, the whole application did not work ! I tried to use other buildpack ?你能说明它是如何不工作的吗? How to Ask
  • 感谢您的评论。我已经编辑了添加屏幕截图的问题。
  • 你没有检查你的日志吗?
  • @azri.dev 你最终让它工作了吗? buildpack-multi 现在似乎已被弃用。我试过这个解决方案。我的应用程序没有崩溃,但无法加载 opencv。有什么想法吗?

标签: python opencv heroku


【解决方案1】:

我可以通过以下方式安装:

  1. cd /path/to/your/dir && git init

  2. heroku create MYAPP(从头开始)

  3. heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git --app MYAPP

  4. 如下创建.buildpacks

    https://github.com/heroku/heroku-buildpack-python
    https://github.com/diogojc/heroku-buildpack-python-opencv-scipy#cedar14
    
  5. git add . && git commit -m 'MESSAGE' && git push heroku master

【讨论】:

  • 酷, - 工作! (4.更像是 *create .buildpacks 文件,不是吗?)
  • buildpack-multi 现在似乎已被弃用。我试过这个解决方案。我的应用程序没有崩溃,但无法加载 opencv。有什么想法吗?
  • 有什么想法吗?我收到此错误libjasper.so.1: cannot open shared object file: No such file or directory? `
【解决方案2】:

对于今天看到此内容并遇到相同问题的任何人,请将您的 requirements.txt 中的 opencv-python 切换为 opencv-python-headless。这回避了有问题的库文件的问题。

【讨论】:

    【解决方案3】:

    以下步骤应该可以解决您面临的openCV问题 -

    1. 通过粘贴将 heroku-buildpack-apt 添加到 BuildPack -https://github.com/heroku/heroku-buildpack-apt 以在仪表板中添加 buildpack。 截屏 - Adding through Dashboard -> Settings -> Add BuildPacks
    2. 然后将 Aptfile 添加到您的 Github 基础目录中,其中包含 -

    libsm6 libxrender1 libfontconfig1 libice6 - 每行一个库。见示例Github Link

    现在构建和部署,您就可以开始了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-19
      • 2018-09-03
      • 1970-01-01
      • 2019-04-06
      • 2019-06-03
      相关资源
      最近更新 更多