【发布时间】:2018-02-13 12:36:40
【问题描述】:
在 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'
有什么想法吗?
【问题讨论】:
-
当您推送到 Heroku 时,您是否在构建输出中看到任何类似于
apt的活动? -
@Chris 是的,日志似乎运行并安装了 aptfile 中包含的文件。
-
从您链接到的问题中接受的答案:“不幸的是,这个 Aptfile 没有相同的依赖解决方案,因此您必须手动指定任何其他包。”您是否也安装了 Tk 本身?我不确定可能存在哪些其他依赖项……
-
@Chris 由 tk 本身 tk-dev?到目前为止,我的 aptfile 包含以下内容: python3-tk libpq-dev build-essential libncursesw5-dev libreadline5-dev libssl-dev libgdbm-dev libc6-dev libsqlite3-dev tk-dev libbz2-dev
-
我不知道具体需要什么。这就是我添加评论而不是答案的原因。我对上面引用的那一行感到有些困惑,因为
apt具有依赖解析much 比没有它更有用。我希望看到 Heroku 相应地增强该 buildpack。
标签: python python-3.x heroku python-3.5