Это мой первый пост StackOverflow, я постараюсь сделать его максимально корректным и полным, если у вас есть какие-либо советы по улучшению моего поста, я с радостью приму его.
У меня проблемы с запуском кода написано в Python, который использует Tkinter.
Я постараюсь подробно описать свои действия, чтобы облегчить выявление ошибки.
Я начал курс в Coursera по DSP (цифровая обработка сигналов), где предлагается установить инструмент написано в python (и немного C). Я использую ссылку Arch Linux.
на Github: репозиторий sms-tools
Используя pyenv / virtualenv / virtualenvwrapper Я создал среда с Python 3.7.5, как рекомендовано в разделе «Как использовать» хранилища.
Я установил необходимые библиотеки в моей среде с помощью pip:
%pip install ipython numpy matplotlib scipy cython
Я скомпилировал некоторые C функции в каталоге "/ sms-tools / software / models / utilFunctions_ C"
с помощью следующей команды:
%python compileModule.py build_ext --inplace
Наконец, я запускаю модели GUI в каталоге "/ sms-tools / software / models_interface"
%python models_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'
Теперь я опишу некоторые из моих попыток решить эту проблему:
Просмотр раздела Tkinter в Python Wiki Я пытался установить Tcl и Tk.
%sudo pacman -S tk
, но он уже был установлен. после этого я попытался установить с помощью pip:
%pip install tk
и
%pip install tkinter
, и ошибка осталась прежней.
Я также пытался создать символическую ссылку с этим кодом: %ln -s /usr/lib/python3.8/lib-dynload/_tkinter.cpython-38-x86_64-linux-gnu.so _tkinter.cpython-38-x86_64-linux-gnu.so
символическая ссылка была создана в следующих папках:
~/.ve/Coursera_DSP/lib/python3.7/lib-dynload
и
.pyenv/versions/3.7.5/lib/python3.7/lib-dynload
Но я все еще получаю ту же ошибку.
Я ценю, если у кого-то есть какие-либо предложения, и я прошу прощения за языковые ошибки, так как Engli sh не моя мать язык.
После непрерывного поиска по inte rnet, я считаю, что проблема связана с pyenv и TCL / TK. Я не очень разбираюсь в предмете, но подозреваю, что при создании среды с помощью virtualenv python потерял связь с TCL / TK. Это имеет какой-то смысл?