Python 3.x Python/Tkinter:ModuleNotFoundError:没有名为'_特金特';
这是我的第一篇文章StackOverflow,我会尽量使它正确和完整,如果你有任何建议来改进我的文章,我会欣然接受 我在运行使用Tkinter的Python编写的代码时遇到问题 我将尝试详细描述我的行为,以便于识别错误 我在Coursera开始了一门关于DSP(数字信号处理)的课程,建议安装一个用python编写的工具(和一点C语言)。我正在使用ArchLinux Github上的链接: 使用pyenv/virtualenv/virtualenvwrapper,我用Python 3.7.5创建了一个环境,正如存储库“如何使用”一节中所建议的那样 我通过pip在我的环境中安装了所需的库:Python 3.x Python/Tkinter:ModuleNotFoundError:没有名为'_特金特';,python-3.x,linux,tkinter,tcl,pyenv,Python 3.x,Linux,Tkinter,Tcl,Pyenv,这是我的第一篇文章StackOverflow,我会尽量使它正确和完整,如果你有任何建议来改进我的文章,我会欣然接受 我在运行使用Tkinter的Python编写的代码时遇到问题 我将尝试详细描述我的行为,以便于识别错误 我在Coursera开始了一门关于DSP(数字信号处理)的课程,建议安装一个用python编写的工具(和一点C语言)。我正在使用ArchLinux Github上的链接: 使用pyenv/virtualenv/virtualenvwrapper,我用Python 3.7.5创建
%pip安装ipython numpy matplotlib scipy cython
我在“/sms工具/软件/模型/utilFunctions\u C”中编译了一些C函数
使用以下命令创建目录:
%python compileModule.py build_ext--inplace
最后,我在目录“/sms tools/software/models\u interface”中运行模型GUI
%python模型\u GUI.py
我得到以下信息:
Traceback (most recent call last):
File "models_GUI.py", line 6, in <module>
from Tkinter import * ## notice capitalized T in Tkinter
ModuleNotFoundError: No module named 'Tkinter'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "models_GUI.py", line 9, in <module>
from tkinter import * ## notice lowercase 't' in tkinter here
File "~/.pyenv/versions/3.7.5/lib/python3.7/tkinter/__init__.py", line 36, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'
回溯(最近一次呼叫最后一次):
文件“models_GUI.py”,第6行,在
从Tkinter导入*##注意Tkinter中大写的T
ModuleNotFoundError:没有名为“Tkinter”的模块
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“models_GUI.py”,第9行,在
从tkinter导入*##注意tkinter中的小写字母“t”
文件“~/.pyenv/versions/3.7.5/lib/python3.7/tkinter/\uuuu init\uuuuu.py”,第36行,在
导入_tkinter#如果失败,您的Python可能无法配置为Tk
ModuleNotFoundError:没有名为“\u tkinter”的模块
现在,我将描述我解决该问题的一些尝试:
我试着安装Tcl和Tk
%sudo pacman-S tk
但它已经安装好了。之后,我尝试使用pip安装:
%pip安装tk
及
%pip安装tkinter
误差保持不变
我还尝试使用以下代码创建符号链接:
%ln-s/usr/lib/python3.8/lib-dynload//u tkinter.cpython-38-x86\u 64-linux-gnu.so\u tkinter.cpython-38-x86\u 64-linux-gnu.so
符号链接是在以下文件夹中创建的:
~/.ve/Coursera\u DSP/lib/python3.7/lib dynload
及
.pyenv/versions/3.7.5/lib/python3.7/lib dynload
但我还是犯了同样的错误
如果有人有任何建议,我将不胜感激。我为语言错误道歉,因为英语不是我的母语
在互联网上不断搜索之后,我相信这个问题与pyenv和TCL/TK有关。
我不太了解这个主题,但我怀疑在virtualenv创建环境的过程中,python已经失去了与TCL/TK的连接。这有什么意义吗?因为我找不到任何解决方案,我只是卸载了我的整个环境系统(pyenv-pyenv-virtualenv-virtualenv和virtualenvwrapper),然后安装了conda。现在一切都好了。 可能是我把pyenv的安装搞砸了
谢谢大家:这里是使空闲和工作的逐步指南。在macOS Catalina为我工作。应易于适应Linux环境:
echo'export PATH=“/usr/local/opt/tcl-tk/bin:$PATH”>~/.zshrc
终端
应用程序或运行源~/.zshrc
tck tk
是否位于$PATH
中。运行echo$PATH | grep--color=auto-tcl-tk
。因此,您应该看到突出显示了tcl-tk
的$PATH内容pyenv
,请使用pyenv uninstall
卸载它。例如,pyenv卸载3.8.2
PYTHON\u CONFIGURE\u OPTS=“--with tcltk includes='-I/usr/local/opt/tcl-tk/includes'--with tcltk libs='-L/usr/local/opt/tcl-tk/lib-ltcl8.6-ltk8.6'
注意:在将来使用实际与自制软件一起安装的tck tk
版本。在发布时,8.6
是实际的pyenv安装pyenv安装安装Python。例如,pyenv安装3.8.2
pyenv global中,观察到:tkinter需要是Python安装的一部分,不能由pip安装。您不需要在Python外部安装tkinter
,它是一个内置库。其次,我在你发布的错误中看到,你在程序的某个地方使用了大写字母T
的Tkinter
,而你应该使用Tkinter
和一个小的T
@DaniyalAhmad,这是一个错误处理程序,它为Python2.x尝试Tkinter,如果失败,则为Python3尝试Tkinter。x@DaniyalAhmadTkinter通常是(例如,在Linux或带有MacPorts或Homebrew的mac OS中)作为Python的独立软件包安装的东西。包裹的确切名称各不相同。最重要的是在构建任何虚拟环境之前进行设置,因为tkinter的包装很奇怪。(真是太棒了