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

时间:2015-07-07 14:10:54

标签: 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)
    

    上面的代码应该在加载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应用程序以及通过pip.安装其他模块(例如Flask)。第二个buildpack是应该加载OpenCV的那个。

  4. 毕竟,整个申请都没有用!

    我在Heroku中获得了(应用程序错误)页面,如下截图所示: enter image description here

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

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

3 个答案:

答案 0 :(得分: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
    
  5. git add . && git commit -m 'MESSAGE' && git push heroku master

答案 1 :(得分:0)

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

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

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

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

答案 2 :(得分:0)

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