在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'
有什么想法吗?
答案 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