如何在Heroku中使用OpenCV

Bri*_*ill 5 python opencv heroku

当我尝试将我的应用程序部署到Heroku时,我收到以下错误:

文件"/app/project/app/object_detection/object_detection_service.py",line 5,在文件"/ app/project/app/_ _init__.py",第22行,在文件"/ app/project/app/views中. py",第6行,在导入cv2中来自.cv2 import*文件"/app/.heroku/python/lib/python3.6/site-packages/cv2/_ _init__.py",第4行,2018-03- 24T20:40:55.986945 + 00:00 app [web.1]:ImportError:libSM.so.6:无法打开共享对象文件:没有这样的文件或目录

OpenCV无法找到libsm目录,但此应用程序在本地正确运行.我尝试使用特定的buildpack但是那些似乎没有找到我的site-packages文件夹.

如何在Heroku上使用openCV(python)?

Lel*_*elo 13

您可以使用heroku-buildpack-apt安装这些库.

在撰写本文时,我已经成功完成了此处托管的repo,并执行了以下步骤:

  1. 将Heroku-buildpack-apt添加到Heroku平台上的buildpacks中
  2. 创建一个名为Aptfile的文件并添加以下库:libsm6,libxrender1 libfontconfig1,libice6(每行一个).这里的例子.


小智 8

使用 opencv-python-headless,因为它不依赖于 libSM6。看看这个
添加以下行您的 requirements.txt 并删除旧的 open-cv 条目:

opencv-python-headless==4.2.0.32
Run Code Online (Sandbox Code Playgroud)


Zyn*_*cho 6

新的 Aptfile 和requirements.txt 属性对我有用:

在 Apt 文件中

libsm6
libxrender1
libfontconfig1
libice6
Run Code Online (Sandbox Code Playgroud)

在需求.txt中

opencv-python-headless==4.2.0.32
Run Code Online (Sandbox Code Playgroud)

请记住将 Buildpack 包含在设置中。

https://github.com/heroku/heroku-buildpack-apt
Run Code Online (Sandbox Code Playgroud)