我使用的是Python 2.7,一旦推送到Heroku,我就无法让Tkinter运行。它在当地工作正常。具体来说,我收到以下错误:
heroku[web.1]: Starting process with command `python main.py runserver 0.0.0.0:5000`
heroku[web.1]: Process exited with status 1
heroku[web.1]: State changed from starting to crashed
app[web.1]: Traceback (most recent call last):
app[web.1]: File "main.py", line 11, in <module>
app[web.1]: from tools.samplewin import samplewin
app[web.1]: from Tkinter import Tk, Text, WORD, DISABLED, NORMAL, BooleanVar, StringVar
app[web.1]: File "/app/.heroku/python/lib/python2.7/lib-tk/Tkinter.py", line 39, in <module>
app[web.1]: import _tkinter # If this fails your Python may not be configured for Tk
app[web.1]: File "/app/tools/samplewin.py", line 6, in <module>
app[web.1]: ImportError: No module named _tkinter
根据wiki上检查您的Tkinter支持的第1步,似乎需要安装Tcl / Tk。由于Heroku应用程序的cedar-14堆栈基于Ubuntu,我将apt buildpack(https://github.com/heroku/heroku-buildpack-apt)作为第一个要执行的buildpack添加到我的应用程序中,tk-dev是Aptfile中唯一的包。
当我推送到Heroku时,tk,tk8.6,tcl,tcl8.6(以及每个版本的-dev版本)都已安装,但是当我访问应用程序时,我最终得到了相同的错误。
我很感激任何帮助。