在Heroku中使用OpenCV的Python Web应用程序

azr*_*dev 5 python opencv heroku

我正在构建一个在其后端使用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)
    
    Run Code Online (Sandbox Code Playgroud)

    上面的代码应该在加载OpenCV时返回成功或失败.

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

    heroku buildpacks:设置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应用程序和安装其他模块(例如,Flask)pip..第二个buildpack是应该加载OpenCV的那个.

毕竟,整个应用程序都不起作用!

我在Heroku中获得了(应用程序错误)页面,如下截图所示: 在此输入图像描述

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

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

kyo*_*yon 3

我可以通过执行以下操作来安装:

  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
    
    Run Code Online (Sandbox Code Playgroud)
  5. git add . && git commit -m 'MESSAGE' && git push heroku master

  • 任何想法?我收到此错误“libjasper.so.1:无法打开共享对象文件:没有这样的文件或目录”?` (2认同)