Что я должен установить, чтобы иметь возможность использовать GTK в Python на Ubuntu? - PullRequest
0 голосов
/ 02 ноября 2009

В моем исходном коде у меня есть:

import gtk

Но когда я запускаю скрипт с командой python3 script.py, я получаю следующую ошибку. Какой пакет я должен установить, чтобы он работал?

Редактировать: мой плохой. здесь ошибка:

ImportError: No module named gtk

Edit2: Спасибо за ответ, kaizer.se. Но я все еще получаю сообщение об ошибке. Посмотрите на следующий код: импорт пигтк, гтк pygtk.require ( '2,0')

def main():
    win = gtk.Window(gtk.WINDOW_TOPLEVEL)
    s = u"привет 한국"
    win.set_title(s)
    win.connect("destroy", gtk.main_quit)
    win.show()

if __name__ == "__main__":
    main()
    gtk.main()

Когда я запускаю этот скрипт, я получаю следующую ошибку:

SyntaxError: Non-ASCII character '\xd0' in file basics.py on line 6, but no encoding declared; see python.org/peps/pep-0263.html for details

Есть идеи, как мне решить эту проблему? Благодарю.

Ответы [ 2 ]

1 голос
/ 02 ноября 2009

PyGtk пока не поддерживает Python 3. Возможно, вы захотите использовать Python 2.x, а затем вам нужно будет установить пакет python-gtk2.

0 голосов
/ 03 ноября 2009

Нет большой разницы между тем, как Python 3 и Python 2.6 обрабатывают юникод и международный текст, технически. Самая большая разница в том, как называются классы и каковы значения по умолчанию.

Так что если вы в Python 3 напишите:

s = "Grüß Gott"

вы берете это в Python 2.x:

# coding: UTF-8
s = u"Grüß Gott"

PyGTK всегда работает с внутренней кодировкой UTF-8, и вы можете передавать ей строки в кодировке Юникод или строки в кодировке UTF-8, как вам угодно.

Лучшая модель - всегда работать со строками Юникода внутри и всегда преобразовывать строки, как только они входят в вашу программу (скажем, вы читаете файл). Опять же, в Python 3 это применяется более явно, но процесс действительно точно такой же.

Добавление обновленного вопроса: я уже ответил, внимательно посмотрите на примеры Py 3 и Py 2.x! Подсказка: вы должны указать кодировку в первой строке каждого файла, например: # coding: UTF-8

Вы также должны спросить себя, Баха, когда увидите сообщение об ошибке вроде этого:

SyntaxError: не-ASCII символ '\ xd0' в файле basics.py в строке 6, но кодировка не объявлена; увидеть python.org/peps/pep-0263.html для подробности

Вы прочитали сообщение и увидели, что в нем написано "кодировка не объявлена"? Вы переходили по ссылке и читали там информацию? Было бы легко решить это самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...