Python / Tkinter: ModuleNotFoundError: нет модуля с именем _tkinter - PullRequest
0 голосов
/ 30 января 2020

Это мой первый пост 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. Это имеет какой-то смысл?

1 Ответ

0 голосов
/ 31 января 2020

Поскольку я не смог найти никакого решения, я просто удалил всю систему окружения (pyenv pyenv-virtualenv virtualenv и virtualenvwrapper) и вместо этого установил conda. Теперь все работает. Наверное я запутался с установкой pyenv.

Спасибо всем: D

...