我正在为heroku部署一个Django应用程序,它需要ffmpeg。为了实现这一点,我使用heroku-buildpack-multi来安装heroku-buildpack-ffmpeg和{a3},所有这些都很好。问题是我的应用程序也依赖于django-pylibmc-sasl
,python-memcached
,pylibmc
等。像往常一样,heroku会感应并自动为我安装libmemcached
。在
这里有点不对劲。如果我删除自定义的buildpack,一切都会正常运行(显然除了ffmpeg)。但是,一旦我添加了它,当我可以运行ffmpeg
时,python就在import pylibmc
(或者更确切地说是模块内部的import _pylibmc
)上失败。在绞尽脑汁之后,我决定看看环境变量,以下是我得到的:
仅启用Python构建包:
LD_LIBRARY_PATH=/app/.heroku/vendor/lib
同时启用Python和ffmpeg构建包:
^{pr2}$看起来,一个或两个构建包只是覆盖另一个,或者避免设置已经设置的变量。ffmpeg构建包似乎在a way that looks kosher to me中设置了LD_LIBRARY_PATH
,而Python构建包却设置了a fewthings,我真的不明白其中的原因。在
无论如何,在使用heroku config:set LD_LIBRARY_PATH=/app/.heroku/vendor/lib:vendor/ffmpeg/lib
手动重写库路径之后,我可以同时使用libmemcached
和{
所以,虽然这根本不是一个紧迫的问题,但我只想知道:
快速浏览代码,这可能是
heroku-buildpack-python
的问题。查看您的~/.profile
(heroku run bash
),并查看LD_LIBRARY_PATH
的设置位置。我猜您将首先看到ffmpeg
的,然后看到Python的设置覆盖了它。在如果是这样的话,你应该提交一个bug。在
相关问题 更多 >
编程相关推荐