【问题标题】:Heroku Python3.5 Import Error : No module named ='_tkinter'Heroku Python3.5 导入错误:没有名为 ='_tkinter' 的模块
【发布时间】: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


【解决方案1】:

将 matplotlib 后端从 tkinter 更改为其他内容。在程序的最开始执行以下操作:

import matplotlib
matplotlib.use('Agg')

这样程序的其余部分将使用您设置的后端(“Agg”、“SVG”等)

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

【讨论】:

    猜你喜欢
    • 2021-12-14
    • 2017-05-10
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    相关资源
    最近更新 更多