导入matplotlib在Heroku上失败[重复]

s4n0splo  于 2023-04-30  发布在  其他
关注(0)|答案(2)|浏览(106)

此问题已在此处有答案

"UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure." when plotting figure with pyplot on Pycharm(31答案)
3天前关闭。

我一直在我的应用程序中使用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在推送应用程序时安装的版本)。

daupos2t

daupos2t1#

对我来说,这是可行的:
将matplotlib后端从tkinter更改为其他内容。在程序的开头执行以下操作:

import matplotlib
matplotlib.use('Agg')

这样,程序的其余部分将使用您设置的后端('Agg','SVG',等等)
另一个选择是尝试和混乱的matplotlibrc文件每: www.example.com

i2byvkas

i2byvkas2#

我联系了Heroku支持,得到了以下答案:
“* 默认的Heroku Python版本不包含成功导入tkinter所需的库。您可以在这里找到我们默认提供的基础库列表:https://devcenter.heroku.com/articles/cedar-ubuntu-packages*

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的问题。

相关问题