Установка Python 2.7.2 на Suse Linux Server 11.3 не может найти зависимости tkinter

Я потратил на это часы. Похоже, наша работа в 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: он не строится. Одна вещь за один раз.

Спасибо за вашу помощь.


person Lewis Levin    schedule 27.12.2011    source источник
comment
Я думаю, что пакеты -devel для Tcl и to не были установлены, хотя я думал, что они установлены. У меня есть полный каталог для всех пакетов devel. Я скачаю и установлю их и посмотрю, решит ли это эту проблему.   -  person Lewis Levin    schedule 28.12.2011


Ответы (1)


Я нашел множество точек распространения наборов пакетов rpm. Это позволило мне установить отдельные пакеты, такие как заголовки для tcl. Но это был плохой подход, потому что полная иерархия зависимостей для создания поддержки Python для tkinter составляет порядка 60 пакетов.

Я обнаружил, что репозиторий OpenSuSE для версии 11.3 ОС содержит все, что мне нужно. Мой дистрибутив Novell поставляется с репозиториями Novell, которые исключают почти все пакеты для разработки.

Задача решена. При создании python были найдены все предпосылки для tkinter.

Извините, что публикую такой нубовский вопрос.

person Lewis Levin    schedule 28.12.2011