Не удается импортировать tkinter в pyenv с установленным python 3.8.6 на Mac

Я не могу импортировать tkinter, я получаю следующее сообщение об ошибке:

ModuleNotFoundError: No module named '_tkinter'

Я использую Python версии 3.8.6, установленный с помощью pyenv на Mac. Пожалуйста помоги


person Bjorn    schedule 29.11.2020    source источник
comment
Вероятно, у вас не были установлены заголовки Tk при компиляции Python. Я не уверен, как правильно их установить на macOS; в Linux вы обычно устанавливаете пакет, предоставленный поставщиком ОС, например. tk-dev. Установите эти заголовки и перестройте Python.   -  person Chris    schedule 29.11.2020


Ответы (1)


Попробуйте использовать conda и посмотрите, работает ли это. Или перед этим создайте изолированную среду, в которой вы просто установите Tk и другие необходимые пакеты. Редко, но может быть проблема с зависимостью

person abrer    schedule 29.11.2020
comment
Итак, я скачал python с помощью conda и попробовал, и это сработало, спасибо! - person Bjorn; 30.11.2020
comment
Однако теперь у меня нет других модулей, которые я ранее загрузил и управлял с помощью pyenv. Самое близкое, что я понял, это то, что это связано с новой macOS, а pyenv еще не поддерживается. Потому что я только что понял, что даже не могу загрузить python с помощью pyenv. Любые идеи о том, в чем может быть проблема, или мне просто нужно дождаться обновления pyenv, чтобы использовать это? - person Bjorn; 30.11.2020
comment
Итак, что вы можете сделать, так это экспортировать старую среду в файл .yml. Откройте этот файл, и он должен указать вам все модули, которые вы установили. Затем вы можете активировать свою среду conda и установить те же версии. Conda автоматически обновляет зависимости для большинства модулей, поэтому вам, возможно, даже не нужно их указывать. Я обычно указываю их, когда хочу использовать более старую версию, поскольку conda всегда обновляется до последней версии (при этом проверяя зависимости). Позвольте мне знать, если у вас есть какие-либо другие вопросы! - person abrer; 01.12.2020