Python & GUI (какию использовать библиотеки?)

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Gloomy
Сообщения: 340
Статус: сочувствующий

Python & GUI

Сообщение Gloomy »

Какие библиотеки для создания GUI на Python наиболее распространенные и переносимые, какие наиболее удобные? Чтобы например можно было смело скопировать кому-нибудь свою программу и быть почти на 100% уверенным что юзеру не потребуется качать пару гигабайт библиотек чтобы запустить программу?

Имеется в наличии книжка "Python 2.1 Bible", в есть глава о создании GUI на базе библиотеки Tkinter (которая в свою очередь входит в библиотеку Tcl). Однако при попытке запустить самый простой пример:

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

import Tkinter
root = Tkinter.Tk()
RootWindow.mainloop()

Получаю ошибку:
Traceback (most recent call last):
  File "hw.py", line 1, in ?
    import Tkinter
  File "/usr/local/lib/python2.3/lib-tk/Tkinter.py", line 38, in ?
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

Почему появляется эта ошибка если библиотеки Tcl и tk (tk насколько я понял и есть Tkinter?) в системе присутствуют?

Версии софта: Python - 2.3.2; Tcl - 8.3.5.2 и 8.4.4_1.1; tk - 8.3.5.2.
Система: FreeBSD 5.2.1.
Спасибо сказали:
Аватара пользователя
Mitya-ncc
Сообщения: 268
Статус: Живущий тут
Контактная информация:

Re: Python & GUI

Сообщение Mitya-ncc »

пайтон собран без поддержки tсltk наверно
В одном мгновеньи – видеть вечность,
Огромный мир в горсти песка,
В одной песчинке – бесконечность,
И небо в чашечке цветка.
Спасибо сказали:
Аватара пользователя
Gloomy
Сообщения: 340
Статус: сочувствующий

Re: Python & GUI

Сообщение Gloomy »

Mitya-ncc
А как его пересобрать с поддержкой Tcl? Искал но не смог найти ни слова о том как это сделать :(
Спасибо сказали:
Аватара пользователя
bogus
Сообщения: 160

Re: Python & GUI

Сообщение bogus »

Я бы рекомендовал wxPython как наиболее переносимую.
В отличии от Tkinter для каждой платформы использются родные API.
Как всякое несовершенное существо я могу ошибаться. Простите меня.
jabberId = foldl (flip (:)) [] "ur.rebbaj@43sugob"
Спасибо сказали:
Аватара пользователя
charlie
Сообщения: 104

Re: Python & GUI

Сообщение charlie »

Можно еще PyGTK, PyQT. Неплохие библиотеки.
Из университета Беркли вышли два главных продукта: LSD и BSD.
Ну было просто рулез!...
Спасибо сказали:
Аватара пользователя
Mitya-ncc
Сообщения: 268
Статус: Живущий тут
Контактная информация:

Re: Python & GUI

Сообщение Mitya-ncc »

Я бы сделал так: USE="tcltk" emerge python && python-updater ;)
Хотя этот флаг по дефолту включен. В BSD ведь тоже что-то типа use-флагов есть.
В одном мгновеньи – видеть вечность,
Огромный мир в горсти песка,
В одной песчинке – бесконечность,
И небо в чашечке цветка.
Спасибо сказали:
Аватара пользователя
Gloomy
Сообщения: 340
Статус: сочувствующий

Re: Python & GUI

Сообщение Gloomy »

bogus
Я бы рекомендовал wxPython как наиболее переносимую.


charlie
Можно еще PyGTK, PyQT. Неплохие библиотеки


А много в каких дистрибутивах *nix'ов они ставятся по-умолчанию? Среди имеющихся на установочном диске FreeBSD пакетов названные библиотеки я не нашел - и где же здесь переносимость? :rolleyes: Под "переносимостью" подразумевается:
Чтобы например можно было смело скопировать кому-нибудь свою программу и быть почти на 100% уверенным что юзеру не потребуется качать пару гигабайт библиотек чтобы запустить программу?


Mitya-ncc
Хотя этот флаг по дефолту включен.

Нашел в доках упоминания про переменную TKPATH но она уже была правильно настроена. Может есть какой-то альтернативный вариант пересборки Python, очень уж не хочется качать десятки мебагайт исходников и потом еще сутки компилировать их :wacko:
Спасибо сказали:
Аватара пользователя
Mitya-ncc
Сообщения: 268
Статус: Живущий тут
Контактная информация:

Re: Python & GUI

Сообщение Mitya-ncc »

Кстати я попробовал твой пример. Не работает. :) Такая же фигня.
Хотя собрано правильно.
Может пример устаревший просто? :huh:
В одном мгновеньи – видеть вечность,
Огромный мир в горсти песка,
В одной песчинке – бесконечность,
И небо в чашечке цветка.
Спасибо сказали:
Аватара пользователя
Gloomy
Сообщения: 340
Статус: сочувствующий

Re: Python & GUI

Сообщение Gloomy »

Кстати я попробовал твой пример. Не работает.

И после пересборки тоже не работает? :blink:

Может пример устаревший просто?

Да вроде не должен он устареть... :unsure:
Спасибо сказали:
Аватара пользователя
Mitya-ncc
Сообщения: 268
Статус: Живущий тут
Контактная информация:

Re: Python & GUI

Сообщение Mitya-ncc »

И после пересборки тоже не работает?

А он у меня сразу был собран с tcltk :)
Подозреваю, что у тебя тоже
Да вроде не должен он устареть...

Попробуй поновей что-нить достать.
В одном мгновеньи – видеть вечность,
Огромный мир в горсти песка,
В одной песчинке – бесконечность,
И небо в чашечке цветка.
Спасибо сказали:
Аватара пользователя
karpov
Сообщения: 29
ОС: Alt Linux

Re: Python & GUI

Сообщение karpov »

А вот такой вариант:

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

from Tkinter import * # Здесь (вероятно) можно оставить как было, тогда

root = Tk() # здесь тоже.
root.mainloop()


Обратите внимание на root. Судя по всему, пример и не заработал бы, поскольку root != RootWindow.
Спасибо сказали:
Аватара пользователя
Gloomy
Сообщения: 340
Статус: сочувствующий

Re: Python & GUI

Сообщение Gloomy »

karpov
Интерпретатор спотыкается на первой же строчке:

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

import Tkinter
или
from Tkinter import *

И дальше не идет :(
Спасибо сказали:
Аватара пользователя
karpov
Сообщения: 29
ОС: Alt Linux

Re: Python & GUI

Сообщение karpov »

Тогда надо разбираться с конфигурацией непосредственно Python (_не_ пересобирать). Переменные среды (PYTHONPATH, к примеру) проверить, а может и не только. Или не столько переменные среды..
Спасибо сказали:
Аватара пользователя
Gloomy
Сообщения: 340
Статус: сочувствующий

Re: Python & GUI

Сообщение Gloomy »

Копался в файле /usr/local/lib/python2.3/compiler/Setup но так и не разобрался, если у кого есть настроенный Python + Tk киньте пожалуйста этот файл :helpsmilie:
Спасибо сказали:
Ответить