Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Lewis LevinОтветов: 1

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

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

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

pythonbuildsuse

Ответы

Ответ 1 · Lewis Levin

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

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы