tcl-tk (tkinter) не устанавливается через Homebrew pyenv в MacOS Mojave - PullRequest
0 голосов
/ 15 октября 2019

Если я сделаю это на MacOS Mojave на Homebrew:

$ brew install tcl-tk
$ brew install pyenv
$ pyenv install 3.7.4
$ pyenv global 3.7.4
$ python -m tkinter -c 'tkinter._test()'    

Я получу:

Traceback (most recent call last):
  File "/Users/craign/.pyenv/versions/3.7.4/lib/python3.7/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/Users/craign/.pyenv/versions/3.7.4/lib/python3.7/runpy.py", line 142, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/Users/craign/.pyenv/versions/3.7.4/lib/python3.7/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/Users/craign/.pyenv/versions/3.7.4/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'

Я искал несколько дней и пробовал различные решения, такие как здесь но пока без везения. Есть идеи, почему я получаю эту ошибку и как ее исправить?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Я никогда не получал это на работу. Я потратил кучу времени на эту страницу , а также на ряд других сайтов, и перепробовал все. Похоже, что на данный момент Homebrew Python и Tcl-Tk не являются одной и той же версией, и это общая проблема. В итоге я установил pyenv и anaconda бок о бок в соответствии с превосходными инструкциями @Simba here , и с помощью Anaconda мои команды Tcl-Tk работают нормально. Публикуйте здесь, чтобы другие не упали в эту кроличью нору, или если они найдут решение, было бы замечательно знать.

1 голос
/ 16 октября 2019

Конечно, он не работает для Python с pyenv.

pyenv - это менеджер среды Python, который поддерживает установку другой версии Python. Когда вы устанавливаете Python из pyenv, pyenv загрузит исходный код и соберет его на локальном компьютере.

Проблема в том, что Python, созданный pyenv, не использует установленный tcl-tkHomebrew как зависимость.

Проблема 1014, которую вы упомянули, объяснила это достаточно ясно. Вы должны переустановить / перекомпилировать Python с помощью pyenv со специальной переменной окружения PYTHON_CONFIGURE_OPTS, чтобы pyenv использовал tcl-tk, установленный Homebrew в качестве зависимости.

...