不能让 opencv 在 heroku 上工作
Cant make opencv work on heroku
我正在尝试让 opencv 在 Heroku 上运行,但服务器日志文件中出现以下错误:
2017-10-05T23:17:08.145096+00:00 heroku[web.1]: State changed from crashed to starting
2017-10-05T23:17:19.477843+00:00 heroku[web.1]: Starting process with command `python Main.py`
2017-10-05T23:17:23.469550+00:00 heroku[web.1]: State changed from starting to crashed
2017-10-05T23:17:23.458477+00:00 heroku[web.1]: Process exited with status 1
2017-10-05T23:17:23.268234+00:00 app[web.1]: Traceback (most recent call last):
2017-10-05T23:17:23.268249+00:00 app[web.1]: File "Main.py", line 3, in <module>
2017-10-05T23:17:23.268434+00:00 app[web.1]: from MostDominantColor import get_color
2017-10-05T23:17:23.268541+00:00 app[web.1]: File "/app/utils.py", line 3, in <module>
2017-10-05T23:17:23.268435+00:00 app[web.1]: File "/app/MostDominantColor.py", line 2, in <module>
2017-10-05T23:17:23.268538+00:00 app[web.1]: import utils
2017-10-05T23:17:23.268648+00:00 app[web.1]: import cv2
2017-10-05T23:17:23.268790+00:00 app[web.1]: ImportError: libSM.so.6: cannot open shared object file: No such file or directory
2017-10-05T23:17:23.268663+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/cv2/__init__.py", line 9, in <module>
2017-10-05T23:17:23.268776+00:00 app[web.1]: from .cv2 import *
在 __init__.py 文件的第 9 行有一段代码仅对 IDE 的自动完成有用:
8 # make IDE's (PyCharm) autocompletion happy
9 from .cv2 import *
我知道在我的代码中导入 cv2 时这一行导致了问题,有没有办法从服务器删除该行(知道 cv2 库是在服务器端通过 pip 下载的,所以我不能只需通过 git)
将这样的编辑推送到 Heroku
欢迎任何建议!
python : 3.6.2
opencv-python==3.3.0.10
这是一个依赖问题,我需要的是安装这个:
apt-get install libsm6 libxrender1 libfontconfig1
Ps:Heroku 的免费帐户不包括 ssh 连接,所以我切换到 Google Cloud Platfom 并且它可以工作。
您必须安装一些依赖项,因为 Heroku 不会自动为您安装。
- 在您的项目目录中添加一个 Aptfile 并添加以下文件
libsm6
libxrender1
libfontconfig1
libice6
注意:Aptfile 不应有任何 .txt 或任何其他扩展名。就像
过程文件
将修改后的代码推送到Github
在 heroku 仪表板中,
转到您的应用程序 --> 设置 --> buildpacks --> 添加 buildpacks --> https://github.com/heroku/heroku-buildpack-apt.git
复制并粘贴此 link - -> 添加构建包
部署您的应用程序
buildpack adding
我正在尝试让 opencv 在 Heroku 上运行,但服务器日志文件中出现以下错误:
2017-10-05T23:17:08.145096+00:00 heroku[web.1]: State changed from crashed to starting
2017-10-05T23:17:19.477843+00:00 heroku[web.1]: Starting process with command `python Main.py`
2017-10-05T23:17:23.469550+00:00 heroku[web.1]: State changed from starting to crashed
2017-10-05T23:17:23.458477+00:00 heroku[web.1]: Process exited with status 1
2017-10-05T23:17:23.268234+00:00 app[web.1]: Traceback (most recent call last):
2017-10-05T23:17:23.268249+00:00 app[web.1]: File "Main.py", line 3, in <module>
2017-10-05T23:17:23.268434+00:00 app[web.1]: from MostDominantColor import get_color
2017-10-05T23:17:23.268541+00:00 app[web.1]: File "/app/utils.py", line 3, in <module>
2017-10-05T23:17:23.268435+00:00 app[web.1]: File "/app/MostDominantColor.py", line 2, in <module>
2017-10-05T23:17:23.268538+00:00 app[web.1]: import utils
2017-10-05T23:17:23.268648+00:00 app[web.1]: import cv2
2017-10-05T23:17:23.268790+00:00 app[web.1]: ImportError: libSM.so.6: cannot open shared object file: No such file or directory
2017-10-05T23:17:23.268663+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/cv2/__init__.py", line 9, in <module>
2017-10-05T23:17:23.268776+00:00 app[web.1]: from .cv2 import *
在 __init__.py 文件的第 9 行有一段代码仅对 IDE 的自动完成有用:
8 # make IDE's (PyCharm) autocompletion happy
9 from .cv2 import *
我知道在我的代码中导入 cv2 时这一行导致了问题,有没有办法从服务器删除该行(知道 cv2 库是在服务器端通过 pip 下载的,所以我不能只需通过 git)
将这样的编辑推送到 Heroku欢迎任何建议!
python : 3.6.2
opencv-python==3.3.0.10
这是一个依赖问题,我需要的是安装这个:
apt-get install libsm6 libxrender1 libfontconfig1
Ps:Heroku 的免费帐户不包括 ssh 连接,所以我切换到 Google Cloud Platfom 并且它可以工作。
您必须安装一些依赖项,因为 Heroku 不会自动为您安装。
- 在您的项目目录中添加一个 Aptfile 并添加以下文件
libsm6
libxrender1
libfontconfig1
libice6
注意:Aptfile 不应有任何 .txt 或任何其他扩展名。就像 过程文件
将修改后的代码推送到Github
在 heroku 仪表板中,
转到您的应用程序 --> 设置 --> buildpacks --> 添加 buildpacks --> https://github.com/heroku/heroku-buildpack-apt.git
复制并粘贴此 link - -> 添加构建包部署您的应用程序
buildpack adding