Невозможно импортировать GTK в Ubuntu Python 2.7 - PullRequest
2 голосов
/ 10 августа 2011

Я пытаюсь импортировать GTK в Ubuntu Python 2.7, и я получаю следующую ошибку. PyGTK импортирует просто отлично. Когда я import gtk, я получаю следующую ошибку:

Exception in Tkinter callback Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__
    return self.func(*args)
File "/usr/lib/python2.7/idlelib/MultiCall.py", line 167, in handler
    r = l[i](event)
File "/usr/lib/python2.7/idlelib/PyShell.py", line 1140, in enter_callback
    self.runit()
File "/usr/lib/python2.7/idlelib/PyShell.py", line 1181, in runit
    more = self.interp.runsource(line)
File "/usr/lib/python2.7/idlelib/PyShell.py", line 619, in runsource
    return InteractiveInterpreter.runsource(self, source, filename)
File "/usr/lib/python2.7/code.py", line 87, in runsource
    self.runcode(code)
File "/usr/lib/python2.7/idlelib/PyShell.py", line 759, in runcode
    self.tkconsole.endexecuting()
File "/usr/lib/python2.7/idlelib/PyShell.py", line 940, in endexecuting
    self.showprompt()
File "/usr/lib/python2.7/idlelib/PyShell.py", line 1205, in showprompt
    self.resetoutput()
File "/usr/lib/python2.7/idlelib/PyShell.py", line 1217, in resetoutput
    if self.history:
File "/usr/lib/python2.7/idlelib/PyShell.py", line 64, in idle_showwarning
    lineno, file=file, line=line))
TypeError: idle_formatwarning() got an unexpected keyword argument 'file'

Как мне это исправить?

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

Это ошибка в режиме ожидания. Глядя на последнюю строку этого сообщения об ошибке:

File "/usr/lib/python2.7/idlelib/PyShell.py", line 64, in idle_showwarning
    lineno, file=file, line=line))
TypeError: idle_formatwarning() got an unexpected keyword argument 'file'

Это говорит о том, что метод warning.idle_showwarning не имеет аргумента "файл".

Достаточно уверен, глядя на /usr/lib/python2.7/warnings.py

def formatwarning(message, category, filename, lineno, line=None)

Нет такого аргумента.

Это, по-видимому, было решено в управлении исходным кодом, но я не думаю, что оно превратилось в релиз. Я бы просто взломал файл /usr/lib/python2.7/idlelib/PyShell.py и удалил некорректный аргумент из строки 64.

Тогда попробуйте еще раз ...

1 голос
/ 11 августа 2011

Попробуйте за пределами IDLE.Ошибка здесь в IDLE, а не в вашем коде.

Создайте новый скрипт, содержащий import gtk, и сохраните его где угодно.

Из командной строки, в каталоге, где расположен ваш скрипт, запустите python whatever_your_scripts_name_is.py.

Проверьте, нет ли ошибки.Возможно, вы не сможете import gtk в IDLE.

Редактировать: Очевидно, что в некоторых ситуациях в Ubuntu проблема с GTK и IDLE *1013*. Попробуйте другойОболочка Python;Я бы порекомендовал IPython , который вы можете установить с помощью Synaptic или sudo apt-get install ipython.

...