在Heroku上导入matplotlib失败

尼尔斯·麦凯

[(与几个月前的情况基本相同:import matplotlib失败,但在heroku上没有名为_tkinter的模块。但是,提供的唯一解决方案似乎无法正常工作。(很遗憾,我无法对此给出的答案发表评论。没有足够的StackOverflow信誉。))]

我一直在我的应用程序中使用matplotlib进行绘图。本地一切正常。但是,当我将应用程序推送到Heroku时,出现错误:

import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

我尝试通过以下方式规避Tkinter:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt, mpld3

但是,这仍然会引发相同的错误。

有没有人找到解决方案,或者有一个带有matplotlib的Heroku应用程序正在运行?我正在运行Python 2.7.13(这也是Heroku在推送应用程序时安装的版本)。

尼尔斯·麦凯

我联系了Heroku支持并获得了以下答案:

默认的Heroku Python构建不包含成功导入tkinter所需的库。您可以在此处找到我们默认提供的基础库的列表:https : //devcenter.heroku.com/articles/cedar-ubuntu -包装

在这种情况下,我们为开发人员提供了使用第三方buildpacks https://devcenter.heroku.com/articles/third-party-buildpacks扩展平台的机会,您可以在https://elements.heroku中浏览其中的许多内容。.com / buildpacks这些可以在部署时安装额外的软件包和依赖项。

请注意,可以选择第三方buildpack,但是不支持buildpack本身。它们可能不由原始作者维护,并且已经停止工作。如果是这种情况,则需要联系原始作者以查看他们是否可以提供帮助。在此SO帖子上有一些建议,即其他用户已使用自定义Python buildpacks成功运行了此https://stackoverflow.com/a/18184536

另一个选择可能是在此处使用实验性Apt buildpack:https : //github.com/heroku/heroku-buildpack-apt您将需要运行

heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt

您还需要在项目的根目录中添加一个名为Aptfile的文件,其内容如下:

python3-tk

不幸的是,此Aptfile没有相同的依赖项解析,因此您必须手动指定任何其他软件包。

我安装了以下buildpack:https : //github.com/thenovices/heroku-buildpack-scipy从而解决了matplotlib的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章