LINUX.ORG.RU

Python: ругня на строки с except + print.


0

1

Собственно, история. Нашел я плазмоид для проверки почты, написаный на PyQt4. Собрал его, собрал плазму с флагом python - плазмоид завелся, только при попытке получить почту в логе ругня на строки типа:

except Exception, err:
print '[MailFunc in getExternalIP] Error: ', str(err)
finally : pass
except x :
print dateStamp(), x, '  defUidl'

Я не програмист, и уж тем более не на python, а плазмоид завести хочется, ввиду необходимости почты.

★★★★★

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

Какой питон? В третьем print стал функцией вместо ключевого слова. Попробуй или со вторым запустать или 2to3 прогнать.

Большинство плазмоидов безнадёжно глючны, уж лучше нормальный клиент попробуй.

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

Да я все понимаю, но kmail ставить не хочется - уж больно он громоздкий и для нормальной работы просит embedded-sql. Я на работе юзаю thunderbird, но к нему плазмоидов нет((( (хотя можно юзать и этот для него).

стоят 2.7 и 3.2, но основной 3.2, да.

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

Плазмоид кстати разрабатывается кем-то из наших, обновлялся последний раз месяц назад, так что свежак.

leg0las ★★★★★
() автор топика

https://github.com/F1ash/kde-plasma-mail-checker/blob/simple/contents/code/MailFunc.py, строка 171 и далее:

def defineUIDL(accountName = '', str_ = ''):
        Result = True
        # print dateStamp(), accountName
        x = ''
        STR = []
        try :
                f = open('/dev/shm/' + QString(accountName).toUtf8().data() + '.cache', 'r')
                STR = f.readlines()
                f.close()
                # print dateStamp(), STR
        except x :
                print dateStamp(), x, '  defUidl'
        finally :
                for uid_ in STR :
                        # print dateStamp(), uid_.split('\n')[0] , '--- ', str_
                        if str_ == uid_.split('\n')[0] :
                                Result = False
                                break
        return Result
вероятно не нашел файл: '/dev/shm/' + QString(accountName).toUtf8().data() + '.cache'

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

Он ругается на строку 53 в этом файле, потом 181 или 183, со следующим except+print. /dev/shm/ в системе в наличии.

leg0las ★★★★★
() автор топика

Так-с. Сконвертил код (2to3-3.2), теперь ругня:

ImportError: cannot import name QString

Т.е. че, третий питон не знает про QString???

leg0las ★★★★★
() автор топика
Последнее исправление: leg0las (всего исправлений: 1)
Ответ на: комментарий от leg0las

не знает. потому что pyqt у тебя установлен только для второго питона. не морочь никому яйца, просто запускай вторым питоном (в первой строке скрипта, поменяй python на python2 или как там у тебя)

val-amart ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.