ошибка с curses tigetstr в Python 2.6.6 - PullRequest
1 голос
/ 21 ноября 2011

После того, как я обновил Ubuntu, мой Python был изменен на 2.6.6, и мой app.py перестал работать при вызове

sys.stdout.write(curses.tigetstr('civis'))

и пишет:

Traceback (most recent call last):
  File "app.py", line 60, in <module>
    sys.stdout.write(curses.tigetstr('civis'))
TypeError: argument 1 must be string or read-only character buffer, not None

Должен ли я изменить свой код для более новой версии Python?

1 Ответ

1 голос
/ 21 ноября 2011

Чтение документации :

curses.tigetstr (capname)

Возвращает значение строковой возможности, соответствующееимя возможности terminfo capname.Ничего не возвращается, если capname не является строковой возможностью, или отменено или отсутствует в описании терминала.

Я полагаю, что проблема может быть в описании терминала.Я использую python 2.7.2 в Ubuntu 11.10, и следующий код не вызывает никаких исключений:

import sys
import curses
curses.setupterm()
sys.stdout.write(curses.tigetstr('civis'))

Это работает для вас?Если да, возможно, ваша проблема связана с настройкой терминала до вызова curses.tigestr ...

...