У меня довольно старая система, поэтому мне пришлось собирать Tcl, Tk и Python из исходного кода.Я правильно настроил переменные окружения LD_LIBRARY_PATH
и PKG_CONFIG_PATH
, собрал Tcl и Tk (оба v8.6.8) из источника и установил их в /usr/local/
.Я запустил make test
после сборки, и все вроде нормально работало.Затем я собрал Python 3.7.1 из исходного кода с помощью команды:
/tmp/build/Python-3.7.1/configure --enable-optimizations \
--with-tcltk-includes=-I/usr/local/include \
--with-tcltk-libs=”-L/usr/local/lib -ltcl8.6 -ltk8.6” \
--with-ssl-default-suites=openssl
Изначально я только посмотрел на неудачную часть теста и проигнорировал тест, пропущенный из-за resource denied
илиenv changed
.После установки я опробовал tkinter в интерактивном режиме с установленного python:
>>> import tkinter
Но я получил следующее сообщение об ошибке:
«Если это не удастся, ваш Python может быть не настроен для Tk»
Поэтому я перезапустил пропущенные тесты Tk из-за resource denied
из сборки каталог:
./python -m test.test_tk; ./python -m test.test_ttk_guionly
Я мог видеть, как промелькнули виджеты Tk и показывает, что все тесты tkinter пройдены.Кроме того, когда я выполнял python из каталога сборки (./python -m tkinter
), я вижу окно Tk с сообщением
«Это версия Tcl / Tk 8.6».
Итак, похоже, что модуль tkinter был собран и работает нормально, но он не был установлен, когда я сделал sudo make install
.Каталог /usr/local/lib/python3.7/tkinter
показывает все скрипты Python, необходимые для его запуска.
Я попытался очистить каталог сборки и переустановить, но безрезультатно.Я немного сбит с толку.В чем может быть проблема?