Pyenv не может установить tkinter с python3.11+ на MacOSPython

Программы на Python
Ответить
Anonymous
 Pyenv не может установить tkinter с python3.11+ на MacOS

Сообщение Anonymous »

Итак, я столкнулся с этой проблемой около года назад, но приложение, которое я писал, не зависело ни от чего конкретно в версии 3.11 или выше, поэтому я мог просто работать на 3.10.14. К сожалению, Apple решила выпустить MacOS15 Sequoia, и теперь tkinter 3.10 просто отказывается загружать некоторые виджеты tk в мое приложение, поэтому теперь я вынужден все реорганизовать для более новой версии Python. Здесь я столкнулся с проблемой, когда pyenv не может установить tkinter в любую версию Python позже 3.10. Чтобы получить tk, я выполняю следующие шаги:

Код: Выделить всё

pyenv uninstall 
brew uninstall python-tk@
brew uninstall tcl-tk  # just making sure its cleaned up
brew install python-tk@3.12  # for example, this also installs the relevant version tcl-tk afaik
pyenv install 3.12
и затем я получаю следующий вывод для последней команды установки:

Код: Выделить всё

% pyenv install 3.12
python-build: use openssl@3 from homebrew
python-build: use readline from homebrew
Downloading Python-3.12.7.tar.xz...
-> https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tar.xz
Installing Python-3.12.7...
python-build: use tcl-tk from homebrew
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Traceback (most recent call last):
File "", line 1, in 
File "/Users/$USER/.pyenv/versions/3.12.7/lib/python3.12/tkinter/__init__.py", line 38, in 
import _tkinter # If this fails your Python may not be configured for Tk
^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named '_tkinter'
WARNING: The Python tkinter extension was not compiled and GUI subsystem has been detected. Missing the Tk toolkit?
Installed Python-3.12.7 to /Users/$USER/.pyenv/versions/3.12.7
Это происходит в версиях 3.11, 3.12 и 3.13 с одним и тем же сообщением об ошибке.
Я почти уверен, что правильно настроил все переменные path и env, хотя для tkinter это больше не требуется из-за невозможности установить tkinter с pyenv Pythons на MacOS:

Код: Выделить всё

% echo $LDFLAGS
-L/usr/local/opt/tcl-tk/lib
% echo $CPPFLAGS
-I/usr/local/opt/tcl-tk/include
% echo $PATH
/Users/$USER/.pyenv/shims:/Users/$USER/.pyenv/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/X11/bin:/Users/$USER/.toolbox/bin:/usr/local/opt/tcl-tk/bin
Я также уже пытался это исправить: https://github.com/pyenv/pyenv/issues/3041, но оно не решило мою проблему и ни одну из связанных страниц, упомянутых там. Я в растерянности...
ПРИМЕЧАНИЕ: имя пользователя во всех выходных данных было вручную изменено на $USER в этом сообщении в целях безопасности.
РЕДАКТИРОВАТЬ: если это сделать, я получаю ту же ошибку:

Код: Выделить всё

brew install tcl-tk
pyenv install 
вместо python-tk@version

Подробнее здесь: https://stackoverflow.com/questions/792 ... 1-on-macos
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»