Форум программистов, компьютерный форум, киберфорум
Наши страницы
tezaurismosis
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Записная книжка, запись 2. Автодополнение в интерактивном режиме Python

Запись от tezaurismosis размещена 23.06.2015 в 16:57

В записной книжке я буду записывать некоторые проблемы, которые удалось решить после поисков в интернете, чтения книг и курения манов. Эти записи большей части для меня самого, чтобы потом было легче вспомнить.
___________________

Q: В документации к Python написано, что интерактивный режим в Python поддерживает автодополнение (если ваша система поддерживает readline). Однако нажатие на Tab просто добавляет отступ от текста. Как включить автодополнение?

A: Интерпретатор Python автоматически запускает скрипт, путь к которому указан в переменной среды PYTHONSTARTUP. Пусть лечебный скрипт будет называться .pystart.py. Добавим в ~/.bashrc строку
Bash
1
export PYTHONSTARTUP="/home/alexey/.pystart.py
В файле .pystart.py нужно забиндить автодополнение на клавишу Tab. Также стоит учесть, что модуль readline может быть недоступен*.
Поместим в .pystart.py следующий код
Python
1
2
3
4
5
6
7
try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")
Перед использованием нужно открыть новый шелл, чтобы переменная среды была им прочитана.

Спасибо Stefano Palazzo за решение этой проблемы.

* В версии Python 3.2 даже был баг, когда при каждом запуске интерпретатора появлялось 'ImportError: No module named readline'
Размещено в Без категории
Просмотров 529 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru