导入matplotlib失败,在heroku上没有名为_tkinter的模块

时间:2016-12-25 06:14:47

标签: python heroku matplotlib tkinter

我正在尝试在我的应用程序中使用import requests from bs4 import BeautifulSoup import pandas as pd response = requests.get("https://en.wikipedia.org/wiki/List_of_cities_by_GDP") soup = BeautifulSoup(response.content, "html.parser") table = soup.select_one("table.wikitable") for span in table.select("span.sortkey"): span.decompose() df = pd.read_html(str(table))[0] print(df) 。我在python2.7中创建了一个virtualenv,pip安装了matplotlib,它在本地运行成功。

但是,当我将应用部署到matplotlib时(在heroku之后和其他必要步骤之后),我的应用崩溃了。当我检查日志时,我看到以下内容:

pip freeze

这很奇怪,因为该应用程序成功运行在本地的venv下。 heroku python环境未配置为运行import _tkinter # If this fails your Python may not be configured for Tk ImportError: No module named _tkinter 吗?如果是这样,我应采取什么步骤来实现这一目标?

1 个答案:

答案 0 :(得分:11)

这应该可以解决问题

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

这会将Matplotlib backend设置为使用Agg而不是Tk。至少为我工作: - )