我一直在尝试设置我的Python web应用程序,该应用程序使用opencv、tensorflow和av模块,但一直失败。我已经尝试使用Aptfile
来安装几个Ubuntu库(libsm6, libxrender1
等(,但安装仍然失败。
安装失败后,heroku服务器决定从源代码构建av模块,该模块也失败了,gcc在这里失败了:
src/av/codec/codec.c:4003:19: warning: implicit declaration of function ‘av_codec_iterate’; did you mean ‘av_codec_next’? [-Wimplicit-function-declaration]
__pyx_v_ptr = av_codec_iterate((&__pyx_v_opaque));
^~~~~~~~~~~~~~~~
av_codec_next
src/av/codec/codec.c:4003:17: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
__pyx_v_ptr = av_codec_iterate((&__pyx_v_opaque));
^
src/av/codec/codec.c: In function ‘__pyx_pymod_exec_codec’:
src/av/codec/codec.c:6117:36: error: ‘AV_CODEC_CAP_HARDWARE’ undeclared (first use in this function); did you mean ‘AV_CODEC_CAP_DR1’?
__pyx_t_7 = __Pyx_PyInt_From_int(AV_CODEC_CAP_HARDWARE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 121, __pyx_L1_error)
^~~~~~~~~~~~~~~~~~~~~
AV_CODEC_CAP_DR1
src/av/codec/codec.c:6117:36: note: each undeclared identifier is reported only once for each function it appears in
src/av/codec/codec.c:6138:36: error: ‘AV_CODEC_CAP_HYBRID’ undeclared (first use in this function); did you mean ‘AV_CODEC_CAP_DR1’?
__pyx_t_7 = __Pyx_PyInt_From_int(AV_CODEC_CAP_HYBRID); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 125, __pyx_L1_error)
^~~~~~~~~~~~~~~~~~~
AV_CODEC_CAP_DR1
error: command 'gcc' failed with exit status 1
有人经历过这种情况吗?或者有没有在Heroku使用av/pyav的经验?请告诉我我错过了什么。谢谢
证明Heroku使用requirements.txt
比使用Pipfile
效果更好。更改安装文件后,部署过程顺利。