LINUX.ORG.RU

Разработка GUI для Python 3

 , ,


1

2

Python 3.1.3, Linux crunchbang 3.2.0-0.bpo.4-686-pae #1 SMP Debian 3.2.41-2+deb7u2~bpo60+1 i686 GNU/Linux (основан на debian squeeze). Не могу установить и запустить хоть что-нибудь, предназначенное для разработки GUI (не считая Tkinter).

1) wx

wxglade и PythonCards зависят от wx, но Python 3 просто не импортирует модуль wx. Почитал, что wx можно заставить работать с помощью Phoenix, скачал его исходники, sudo python3 setup.py install выдает:

running install
running build
running build_py
running install_lib
byte-compiling /usr/local/lib/python3.1/dist-packages/phoenix/__init__.py to __init__.pyc
  File "/usr/local/lib/python3.1/dist-packages/phoenix/__init__.py", line 56
    except PhoenixError, e:
                       ^
SyntaxError: invalid syntax

running install_data
running install_egg_info
Removing /usr/local/lib/python3.1/dist-packages/phoenix-0.9.1.egg-info
Writing /usr/local/lib/python3.1/dist-packages/phoenix-0.9.1.egg-info
Вроде как что-то и поставилось, но что с этим дальше делать? import wx ведет к сообщению об отсутствующем модуле.

2) gtk

Понравился glade, скачал образец программы (http://code.google.com/p/calculator-python-glade/), фрагмент кода

#!/usr/bin/python3
import sys
try:
        import pygtk
        pygtk.require('2.0')
except:
        pass
try:
        import gtk
        import gtk.glade
except:
        print('GTK not available')
        sys.exit(1)
Выдает 'GTK not available'. python-gobject уже установлен. Я так понимаю, не работает из-за того, что основной питон в системе - 2.6.6, в то время как, видимо, требуется python3-gobject (виртуальный пакет в репах sid, ссылается на python3-gi). Пакет из sid не устанавливается - слишком много зависимостей надо вручную компилить.

3) pyqt

В качестве hello_world взял пример с wiki. В результате «No module named PyQt4.QtGui», пакета python3-qt4 в репах Squeeze нет, есть только python-qt4.

Что с этим всем делать? Есть ли какая-нибудь возможность добавлять модули Python 3 в Debian Squeeze через репы?

Deleted

Последнее исправление: Deleted (всего исправлений: 1)

Ты выбирай, тебе стабильность или это самое.

anonymous
()

Есть ли какая-нибудь возможность добавлять модули Python 3 в Debian Squeeze через репы?

Чем тебя pip c virtualenv не устраивают?

suvor-07
()

Ты ж в курсе что визи теперь стабильный?

~$ apt-cache search python3 qt4 
python3-pyside - Python3 bindings for Qt4 (big metapackage)
python3-pyqt4 - Python3 bindings for Qt4
python3-pyqt4-dbg - Python3 bindings for Qt4 (debug extensions)
python3-pyqt4.phonon - Python3 bindings for Phonon
python3-pyqt4.phonon-dbg - Python3 bindings for Phonon (debug extensions)
python3-pyqt4.qtopengl - Python 3 bindings for Qt4's OpenGL module
python3-pyqt4.qtopengl-dbg - Python 3 bindings for Qt4's OpenGL module (debug extension)
python3-pyqt4.qtsql - Python3 bindings for PyQt4's SQL module
python3-pyqt4.qtsql-dbg - Python3 bindings for PyQt4's SQL module (debug extension)
python3-pyudev - Python3 bindings for libudev
python3-pyqt4.qsci - Python 3 bindings for QScintilla 2

Kalashnikov ★★★
()

pip install <package name> не работает?

fang90 ★★★★★
()
Ответ на: комментарий от Linuxman

Да нет, мы на нем довольно заморочные вещи делаем. Результат выглядит несколько топорно по сравнению с ГТК тем же, каких то свистелок и перделок нету, но для «быстро сделать что ыб работало» подходит идеально.

AIv ★★★★★
()
Ответ на: комментарий от Kalashnikov

У меня их нет.

pete@crunchbang:~$ apt-cache search python3 qt4
pete@crunchbang:~$
Deleted
()
Ответ на: комментарий от AIv

Tkinter линеен, а у меня скрипт построен так, что окна приходится вызывать много раз функциями. Из-за этого постоянно возникают проблемы с root-окном. Если реализовывать все через frame, то из-за убогого root.withdraw root-окно может не вылезти в следующий раз там, где надо. А если не применять root.withdraw, приходится убивать пустые root-окна. Мне не удалось отладить этот момент, особенно с учетом того, что окошки рисуются функциями, а не линейно по всему тексту программы. В настоящий момент все реализовано в Tkinter, в каждой функции/процедуре создается и разрушается root-окно. Возможно, из-за этого возникают глюки с тем, как эти окна отображаются в WM. В Linux после того, как скрипт открывает файл внешними средствами (например, в LibreOffice), активным становится окно LibreOffice, однако, главное окно скрипта продолжает висеть на переднем плане, хоть оно уже и не активно. В Windows же любое окно, созданное скриптом, появляется на переднем плане, но не активно, каждый раз по нему приходится щелкать мышью, чтобы активизировать, а это напрягает. Надеюсь, более-менее понятно изъяснился.

В общем, думал по-быстрому нарисовать GUI без геморроя с Tkinter и необходимости в PyZenity и zenity. Ан нет :(

Deleted
()
Ответ на: комментарий от tailgunner

ЕМНИП я читал про это только у Лутца «Программирование на питон». Дальше шел методом тыка;-)

AIv ★★★★★
()
Ответ на: комментарий от Deleted

Надеюсь, более-менее понятно изъяснился.

Непонятно. Что мешает работать именно с рут окном? Я тоже местами неск раз его создаю-убиваю, проблем не было.

AIv ★★★★★
()
Ответ на: комментарий от AIv

Ничего не мешает, просто неудобно. По непонятным причинам, имеются следующие неудобства:
1. окно иногда на переднем плане, даже если вызывается другая программа. Замечено при работе с LibreOffice (но не всегда). При этом вызываемая программа имеет хоть и активное окно, но на заднем плане. Воспроизвести последовательность действий, всегда приводящих к этому, пока не могу, похоже на случайность.
2. окно скрипта хоть и на переднем плане, но всегда неактивно (при работе в Windows)

Deleted
()
Последнее исправление: Deleted (всего исправлений: 3)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.