【问题标题】:Heroku and OpenCV with PythonHeroku 和 OpenCV 与 Python
【发布时间】:2013-11-09 17:11:48
【问题描述】:

我正在尝试在 Heroku 上安装 OpenCV,以便我的 Python Web 应用程序可以使用 OpenCV。我该怎么做?

谢谢!

【问题讨论】:

    标签: python opencv heroku buildpack


    【解决方案1】:

    它适用于可能面临同样问题的谷歌同事。 只需将 requirements.txt 中的 opencv-python 更改为 opencv-python-headless

    opencv-python-headless 是一个不支持 gpu 的 opencv 版本。给出错误的文件 libsm.so(P.S 不记得正确的名称)是为了 GPU 支持。

    供参考:

    opencv-python-headless

    【讨论】:

    • 这比其他答案更简单,解决了我的问题。
    【解决方案2】:

    friism 发布的链接对我不起作用,因此我创建了一个自定义 buildpack,对于您描述的情况应该绰绰有余。

    您可以找到构建包here

    【讨论】:

    • 感谢您发布此 Diogo。 @friism 发布的链接对我也不起作用,我会尝试这个并在稍后告诉你我的成功(此时,这是一个我最终使用 Amazon EC2 代替的旧项目)。
    • @Diogo 我尝试使用您的 buildpack,但收到此错误。非常感谢任何帮助。 2017-04-19T13:17:39.305177+00:00 heroku[web.1]:使用命令启动进程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:没有名为站点的模块
    • 自 2018 年起,您可以使用 buildpack 安装 apt 库。见stackoverflow.com/a/51004957/660711
    【解决方案3】:
    【解决方案4】:

    以下步骤应该可以解决您面临的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
    

    现在构建和部署,你准备好了!

    【讨论】:

    • 欢迎来到 Stack Overflow。仅供参考,如果您遇到几个您认为完全相同的答案可以解决所有问题的问题,则不应发布所有问题的答案(它们可能会被主持人删除或自动检查重复答案)。您应该考虑将帖子标记为重复问题。
    【解决方案5】:

    看起来我来晚了,但这是我的解决方案,对我有用。 我需要演示这个使用 OpenCV 和 Django DRF 的 API。

    我尝试了所有包括添加 .buildpacksAptfiles 的解决方案,但没有一个对我有用。

    我最终删除了 .buildpacks 文件和 Aptfile 并在 requirements.txt 文件中添加了 opencv-python-headless 以替换 opencv-python

    只要这样做,API 就可以在 python-3.8.0 运行时上运行。 libgl1 和此类依赖项适用于opencv-python 附带的以 GUI 和 GPU 为中心的版本。因此,您可以使用opencv-python-headlessopencv-contrib-python-headless。您唯一需要的 buildpack 是 heroku/python buildpack。

    有关更多详细信息,请查看选项 3 和 4 here

    如果您想查看,我也有一个 GitHub repo

    注意:您可以cv2.imshow() 之类的方法用于无头。无论如何,你不会有任何意义,只是一个警告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-16
      • 2015-03-10
      • 2019-04-03
      • 2021-03-02
      • 2019-12-25
      • 2016-04-19
      • 2017-09-16
      • 2012-07-11
      相关资源
      最近更新 更多