Python未配置Tk

25

我正在使用Ubuntu 13.10和Python 3.3.4,并使用pyenv。 我在使用其他模块时没有问题。 当我进入Python控制台并输入以下内容时:

import tkinter

它输出

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/serdar/.pyenv/versions/3.3.4/lib/python3.3/tkinter/__init__.py", line 40, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named '_tkinter'

我已经安装了python3-tktk-devel


/usr/bin/python3 -c'import tkinter' 成功了吗? - jfs
是的,它起作用了,但 pyenv 安装了多个版本。您可以使用单个命令更改活动 Python 版本。它安装在 /.pyenv/versions 下。`/.pyenv/versions/3.3.4/bin/python3 -c'import tkinter'` 没有起作用。 - serdar
如果它可以在 /usr/bin/python3 上正常工作,那就尝试重新创建环境。 - jfs
@J.F.Sebastian JFI: pyenv 与普通的虚拟环境有所不同。 - blueyed
如果您正在使用 pyenv 进行 Python 环境管理,并且想要在其中使用 IDLE,可以按照以下步骤指南进行操作:https://dev59.com/Grvoa4cB1Zd3GeqPwQ80 - nickolay
3个回答

38

在运行pyenv install命令时,需要安装Tk的开发文件/头文件。

在Ubuntu(15.04)上,可以通过以下命令安装:sudo apt-get install tk-dev

之后,运行pyenv install 3.4.3(或其他版本,如pyenv install 2.7.10),即可支持Tk。

参考pyenv中的问题


2
这个内容可能应该放在pyenv常见问题解答中。 - lbonn
我刚刚将其添加到了common-build-problems维基页面的要求中。 - wassname
对于Red Hat / Amazon Linux,这是:sudo yum install tkinter - StackG
6
我在MacOS上遇到了同样的问题。有人有想法吗? - stackoverflax
这是我的问题。我仍在尝试在不创建新环境的情况下使其工作。 - Austin not from Boston

18

这是给Mac用户的指南,

  1. 卸载你的Python版本。例如:pyenv uninstall 3.7.2
  2. 安装TK:brew install tcl-tk
  3. 按照后续安装步骤和配置tk:
export LDFLAGS="-L/usr/local/opt/tcl-tk/lib"
export CPPFLAGS="-I/usr/local/opt/tcl-tk/include"
export PATH=$PATH:/usr/local/opt/tcl-tk/bin
  1. 重新加载您的终端会话,并确保上述所有设置都正确设置
  2. 安装Python:pyenv install 3.7.2

TK现在应该可以使用了


1
没错。我刚刚发布了一份逐步指南,供那些可能需要的人使用-https://dev59.com/Grvoa4cB1Zd3GeqPwQ80 - nickolay
5
实际上解决我的问题的是:brew install python-tk,而不是tcl……的东西。 - JohnnyJS
谢谢@JohnnyJS,你的解决方案对我很有用。顺便说一下,我正在使用Python-3.9。 - Nurulazrad Murad
@JohnnyJS 我也是,你的提示解决了问题。谢谢。 - akes406

4

针对Mac用户,

  1. 完全卸载pyenv:brew uninstall pyenv && rm -rf ~/.pyenv
  2. 安装zlib、tcl-tk和pyenv。
brew update
brew install zlib
brew install tcl-tk #otherwise we may have problems with tf package
brew install pyenv
  1. 让编译器找到zlib。将以下内容添加到您的~/.bashrc或~/.zshrc文件中(如果您使用oh-my-zsh)
# For compilers to find zlib you may need to set:
export LDFLAGS="${LDFLAGS} -L/usr/local/opt/zlib/lib"
export CPPFLAGS="${CPPFLAGS} -I/usr/local/opt/zlib/include"

# For pkg-config to find zlib you may need to set:
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH} /usr/local/opt/zlib/lib/pkgconfig"

那么你已经设置好了!有关更多详细信息,请查看 GitHub 要点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接