Heroku Python3.5导入错误:没有名为='_ tkinter'的模块

时间:2017-09-05 09:11:04

标签: python python-3.x heroku python-3.5

在Heroku中部署并添加自定义构建包(例如libspatialindex)时,另一个错误发生在Python 3.5现在寻找Tkinter的地方。

在本地,通过使用sudo apt-get tk-dev进行安装,这将得到解决,并尝试从类似问题中提出建议:import matplotlib failing on Heroku,错误仍然存​​在。

以下是我的构建包:

https://github.com/heroku/heroku-buildpack-apt 
heroku/python
https://github.com/julienfr112/libspatialindex-buildpack.git

我的Aptfile只包含:

python3-tk
libpq-dev
build-essential
libncursesw5-dev
libreadline5-dev
libssl-dev
libgdbm-dev
libc6-dev
libsqlite3-dev tk-dev
libbz2-dev

在Heroku上推这里是日志的尾巴:

2017-09-05T08:25:58.903075+00:00 app[web.1]:   File "/app/.heroku
/python/lib/python3.5/site-packages/six.py", line 82, in _import_module
2017-09-05T08:25:58.903076+00:00 app[web.1]:     __import__(name)
2017-09-05T08:25:58.903076+00:00 app[web.1]:   File "/app/.heroku
/python/lib/python3.5/tkinter/__init__.py", line 35, in <module>
2017-09-05T08:25:58.903076+00:00 app[web.1]:     import _tkinter 
# If this fails your Python may not be configured for Tk
2017-09-05T08:25:58.903077+00:00 app[web.1]: ImportError: No module
named '_tkinter'

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

将matplotlib后端从tkinter更改为其他内容。在程序的最开始这样做:

import matplotlib
matplotlib.use('Agg')

这样,程序的其余部分将使用您设置的后端(&#39; Agg&#39;,&#39; SVG&#39;等等)

另一种选择是尝试使用matplotlibrc文件:https://matplotlib.org/users/customizing.html#the-matplotlibrc-file