【发布时间】:2013-11-09 17:11:48
【问题描述】:
我正在尝试在 Heroku 上安装 OpenCV,以便我的 Python Web 应用程序可以使用 OpenCV。我该怎么做?
谢谢!
【问题讨论】:
标签: python opencv heroku buildpack
我正在尝试在 Heroku 上安装 OpenCV,以便我的 Python Web 应用程序可以使用 OpenCV。我该怎么做?
谢谢!
【问题讨论】:
标签: python opencv heroku buildpack
它适用于可能面临同样问题的谷歌同事。
只需将 requirements.txt 中的 opencv-python 更改为 opencv-python-headless。
opencv-python-headless 是一个不支持 gpu 的 opencv 版本。给出错误的文件 libsm.so(P.S 不记得正确的名称)是为了 GPU 支持。
供参考:
【讨论】:
friism 发布的链接对我不起作用,因此我创建了一个自定义 buildpack,对于您描述的情况应该绰绰有余。
您可以找到构建包here。
【讨论】:
python app.py runserver 0.0.0.0:5000 2017-04-19T13:17:42.488675+00:00 app[web.1]:红宝石:符号查找错误:/usr/lib/ruby/1.9.1/x86_64-linux/enc/encdb.so:未定义符号:rb_enc_set_base 2017-04-19T13:17:42.503774+00:00 app[web.1]: ImportError:没有名为站点的模块
以下步骤应该可以解决您面临的openCV问题-
libsm6
libxrender1
libfontconfig1
libice6
现在构建和部署,你准备好了!
【讨论】:
看起来我来晚了,但这是我的解决方案,对我有用。 我需要演示这个使用 OpenCV 和 Django DRF 的 API。
我尝试了所有包括添加 .buildpacks 和 Aptfiles 的解决方案,但没有一个对我有用。
我最终删除了 .buildpacks 文件和 Aptfile 并在 requirements.txt 文件中添加了 opencv-python-headless 以替换 opencv-python
只要这样做,API 就可以在 python-3.8.0 运行时上运行。 libgl1 和此类依赖项适用于opencv-python 附带的以 GUI 和 GPU 为中心的版本。因此,您可以使用opencv-python-headless 或opencv-contrib-python-headless。您唯一需要的 buildpack 是 heroku/python buildpack。
有关更多详细信息,请查看选项 3 和 4 here!
如果您想查看,我也有一个 GitHub repo!
注意:您可以不将cv2.imshow() 之类的方法用于无头。无论如何,你不会有任何意义,只是一个警告。
【讨论】: