导入 matplotlib 失败,在 heroku 上没有名为 _tkinter 的模块
Posted
技术标签:
【中文标题】导入 matplotlib 失败,在 heroku 上没有名为 _tkinter 的模块【英文标题】:import matplotlib failing with No module named _tkinter on heroku 【发布时间】:2017-05-10 04:48:46 【问题描述】:我正在尝试在我的应用程序中使用matplotlib
。我在python2.7中创建了一个virtualenv,pip安装了matplotlib,在本地成功运行。
但是,当我将应用程序部署到 heroku
(在 pip freeze
和其他必要步骤之后)时,我的应用程序崩溃了。当我检查日志时,我看到以下内容:
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter
这很奇怪,因为应用程序在 venv 下成功运行在本地。 heroku python 环境是否未配置为运行matplotlib
?如果是这样,我应该采取哪些步骤来启用它?
【问题讨论】:
【参考方案1】:这应该可以解决问题
matplotlib.use('Agg')
import matplotlib.pyplot as plt
这会将您的 Matplotlib backend 设置为使用 Agg 而不是 Tk。至少对我有用:-)
【讨论】:
为了正确起见,import matplotlib
先于其他。
另外,您需要确保将此行放在任何其他可能也导入 matplotlib 的包之前,例如 skimage以上是关于导入 matplotlib 失败,在 heroku 上没有名为 _tkinter 的模块的主要内容,如果未能解决你的问题,请参考以下文章
Axios GET请求在我的本地版本上运行,但在Heroku上失败-未捕获(承诺)错误:请求失败,状态码为500
导入matplotlib的python脚本成功但脚本的冻结二进制文件失败
使用 cx_Freeze 导入 matplotlib.pyplot 和 BeautifulSoup