Я потратил на это часы. Похоже, наша работа в Linux заключается в отладке скриптов, которые не работают в фрагментированных дистрибутивах, а не в выполнении работы.
Setup.py пытается найти то, что ему нужно, и создает модули c, используемые для переноса определенных зависимостей, если он может найти то, что ему нужно. Это делает скрипт очень хрупким по отношению к путям и именам файлов.
Хотя это ОЧЕНЬ сложно сказать по источнику .py, похоже, что для tkinter нам нужны tcl, tk и tix. Все последние версии установлены. Я могу это проверить, потому что Python 2.6, который поставляется с дистрибутивом SUSE, импортирует модули import_tkinter и Tkinter и правильно запускает тестовый сценарий.
Кажется, скрипту нужно найти библиотеки. У меня установлены и 32 бит и 64 бит. Итак, эти библиотеки существуют: 32-битная 64-битная libtk8.5.so /usr/lib /usr/lib64 libtcl8.5.so " "
Оба пути включены в соответствующий список поиска в Setup.py. Но я не думаю, что Setup.py ищет правильные имена файлов. Кажется, он ищет файлы, начинающиеся с tk и tcl, объединяя множество разных версий (включая «8.5»). Но имена файлов не начинаются с «lib». Прежде чем я начну вмешиваться, неужели ребята из Python.org действительно так сильно все испортили? Это маловероятно. Является ли SUSE Linux таким странным дистрибутивом? Это тоже маловероятно.
Я не думаю, что setup.py будет искать двоичные файлы (казалось бы, это имеет значение во время выполнения...), но они присутствуют в usr/lib и usr/lib64.
Единственный включаемый файл, который я могу найти, относится к tclextend. Это tclextend.h, который находится в usr/include. Я не смог найти другие файлы .h для tcl или tk. Конечно, включаемые файлы, которые требуются оболочкам Python c, поставляются при загрузке Python 2.7.
Итак, я как бы в своем уме. Это такая колоссальная трата времени. Есть ли способ просто пропустить процесс сборки и просто создать поддержку tcl/tk? У меня тоже такая же проблема с ssl: он не строится. Одна вещь за один раз.
Спасибо за вашу помощь.