在 Ubuntu 上安装 python3.6 中的 tkinter

新手上路,请多包涵
+--------+-----------------------------------+
|   OS   |           Ubuntu 12.04            |
+--------+-----------------------------------+
| Python | 2.7, 3.2 and source installed 3.6 |
+--------+-----------------------------------+

由于有 2 个版本的 Python 3,因此从存储库安装的任何内容都不适用于 Python 3.6。存储库中最新版本的 Python 是 3.2,所以我需要源代码安装或通过 pip3.6。

启动后 python3.6 我尝试了 import tkinter ,它给出了以下错误。尽管 help('modules') 返回了包含 tkinter 的模块列表。

  import tkinter
 ModuleNotFoundError: No module named '_tkinter'

我尝试在 python3.2 中做同样的事情并且 没有错误tkinter._tkinter 给出了 python3.2 的 tkinter 库的位置

我 cd 进入了 python3.6 目录,其中包含所有库文件,实际上它缺少 tkinter.so 目标文件。

我该如何修复错误?

我想让 tkinter/tkagg 工作,因为它似乎已经安装了所有模块/包。

在谷歌搜索更多之后,我发现我需要再次构建 python3.6 ,但这次在运行配置时使用 Tcl/Tk 选项。我宁愿不。从头开始安装 python3.6 大约需要 1 小时。

有没有其他方法可以告诉我 python3.6 Tcl/Tk 位于何处?

问题不在于告诉 python tcl/tk 在哪里。弄乱了python3.6的源代码,然后比较了python3.6和python3.2,我发现tkinter调用的_tkinter不是python文件,它是python在安装过程中构建的.so(共享对象)文件通过使用 gcc 的 setup.py,不知何故可能涉及 distutils。

新的更合适的问题是如何从 tcl/tk 构建 _tkinter.cpython-36m-i386-linux-gnu.so

注意:我确实安装了 tcl/tk,我已经使用 tclsh 和 wish 确认了这一点。

原文由 lapin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 691
1 个回答

从终端运行:

 sudo apt-get install python3.6-tk

或者完全重新安装:

 sudo apt-get install python3.6

原文由 Enchant97 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题