当我尝试将应用程序部署到Heroku时,收到以下错误:
File "/app/project/app/_ _init__.py", line 22, in <module>
File "/app/project/app/views.py", line 6, in <module>
import cv2
from .cv2 import *
File "/app/.heroku/python/lib/python3.6/site-packages/cv2/_ _init__.py", line 4, in <module>
2018-03-24T20:40:55.986945+00:00 app[web.1]: ImportError: libSM.so.6: cannot open shared object file: No such file or directory```
OpenCV无法找到libsm目录,但是这个应用程序在本地正确运行。我已经尝试使用特定的构建包,但是那些似乎没有找到我的site-packages
文件夹。
如何在Heroku上使用openCV(python)?
9条答案
按热度按时间o7jaxewo1#
您可以利用heroku-buildpack-apt安装这些缺少的库。
在写这篇文章的时候,我已经成功地完成了for this repo,步骤如下:
1.将heroku-buildpack-apt添加到Heroku平台上的构建包中
1.创建一个名为Aptfile的文件,并添加以下库:
(one)。例如here。
编辑:在OpenCV的更新版本中,您只需要在Aptfile中列出
python-opencv
,如docs中所示。sycxhyv72#
使用opencv-python-headless,因为它不依赖于libSM 6。请检查this。
添加以下行your requirements.txt并删除旧的open-cv条目:
xwmevbvl3#
新的Aptfile和requirements.txt属性对我很有用:
在Apt文件中
要求. txt中的####
请记住在设置中包含Buildpack。
2skhul334#
您必须安装一些依赖项,因为Heroku不会自动为您安装。
1.在项目目录中添加***Aptfile***,并添加以下文件
注意:Aptfile不应该有任何.txt或任何其他扩展名。就像Procfile一样
1.将编辑后的代码推送到Github
1.在heroku Jmeter 板中,
后藤您的应用程序--〉设置--〉构建包--〉添加构建包--〉* https://github.com/heroku/heroku-buildpack-apt.git *
复制并粘贴此链接--〉添加构建包
1.部署应用程序
vybvopom5#
对于Windows用户,当遵循上面的@Lelo建议时,请确保在Aptfile中使用unix样式的行尾
sg3maiej6#
参考Lelo关于库的安装的回答,OpenCV已经改变了他们所需的库(在写这篇文章的时候是4.4.0)。
因此,要获得最新的库,您只需要Aptfile中的
python-opencv
,而不是其他库。这被称为Install OpenCV-Python in Ubuntu。
vzgqcmou7#
在我的例子中,我遇到了类似
ImportError: libSM.so.6
的错误,在这种情况下,需要将libsm1(全部小写)添加到aptfile中,它工作了。2mbi3lxu8#
用这个吧,我用过了.
lf5gs5x29#
您应该安装libsm6和libxext6,并运行
但是,由于heroku不提供root访问权限,所以您不能这样做。您可以选择其他提供商,如Google Cloud Platform或AWS
中央情报局