Як я можу отримати заповнення вкладки в інтерактивному інтерпретаторі Python?


14

Я часто використовую інтерактивний інтерпретатор Python 3000, але в ньому відсутня зручність заповнення вкладок, до яких я звик із ipython, який недоступний для Python 3.x.

Як увімкнути заповнення вкладок у всіх, 2.6 та 3.x?

Відповіді:


17

Спочатку створіть новий файл, який називається .pythonstartup.pyу вашому домашньому каталозі. Помістіть у нього такий сценарій:

try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

Дужки навколо рядка гарантують, що він працює як з Python 2, так і з Python 3.

Кожен раз, коли інтерактивний перекладач запускається, він виконує визначений у ньому сценарій $PYTHONSTARTUP, якщо такий є. Щоб встановити його для виконання вищевказаного сценарію, введіть

export PYTHONSTARTUP="~/.pythonstartup.py"

Ви повинні написати цей рядок у свій файл .bashrcабо.bash_profile файл, щоб він автоматично виконувався при запуску нової оболонки.


6
ПРИМІТКА: Це не спрацює, якщо запустити термінал і потім змінити каталог. Якщо ви хочете, щоб цей метод працював незалежно від каталогу, який ви знаходитесь, ви повинні використовувати повний шлях на зразокexport PYTHONSTARTUP="/home/user/.pythonstartup.py"
Pithikos

1
Ви можете зробити експорт трохи толерантнішим, експортуючиPYTHONSTARTUP=~/.pythonstartup.py
Mikael Fremling

Це не працює, якщо ви запускаєте файл в інтерактивному режимі, наприклад python -i main.py. Будь-який спосіб це зробити?
Кріс Андерсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.