Как добавить завершение табуляции в оболочку Python? - PullRequest
106 голосов
/ 29 октября 2008

При запуске приложения django с использованием python manage.py shell я получаю оболочку InteractiveConsole - могу использовать завершение табуляции и т. Д.

Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)

Когда только запускается интерпретатор python с использованием python, он не предлагает завершение табуляции.

Может кто-нибудь сказать мне, что делает django, чтобы дать мне интерактивную консоль, или что мне нужно сделать, чтобы запустить интерактивную консоль без приложения django?

Ответы [ 8 ]

186 голосов
/ 29 октября 2008

Возможно, я нашел способ сделать это.

Создать файл .pythonrc

# ~/.pythonrc
# enable syntax completion
try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

затем в вашем файле .bashrc добавьте

export PYTHONSTARTUP=~/.pythonrc

Кажется, это работает.

34 голосов
/ 29 октября 2008

Я думаю, что django делает что-то вроде https://docs.python.org/library/rlcompleter.html

Если вы хотите иметь действительно хорошего интерактивного переводчика, взгляните на http://ipython.scipy.org/.

26 голосов
/ 29 октября 2008

Для справки, это описано в руководстве: http://docs.python.org/tutorial/interactive.html

7 голосов
/ 21 августа 2015

Я использую ptpython. https://github.com/jonathanslenders/ptpython/

ptpython - замечательный инструмент автозаполнения оболочки cmd. установить ptpython очень просто, используйте инструмент pip

pip install ptpython

и для оболочки django вы должны импортировать django env, как это

импорт ОС

os.environ.setdefault ("DJANGO_SETTINGS_MODULE", "testweb.settings")

Поверь мне, это лучший способ для тебя !!!

3 голосов
/ 24 марта 2017

Похоже, что Python3 имеет его из коробки!

0 голосов
/ 06 марта 2019

исправление для оболочки windows10:

  • pip install pyreadline
  • pip install ipython [shell]
0 голосов
/ 01 сентября 2018

Я создаю более совершенный .pythonrc.py, вы можете найти это полезным: https://gist.github.com/guyskk/6f3522e3d17135b470bf3d982c80cc01

0 голосов
/ 02 июля 2017

В Python3 эта функция включена по умолчанию. В моей системе не установлен модуль readline. Я нахожусь на Манджаро. Я не сталкивался с этой проблемой завершения вкладки в других дистрибутивах Linux (элементарный, Ubuntu, Mint).

После pip установки модуля при импорте вылетала следующая ошибка -

ImportError: libncursesw.so.5: cannot open shared object file: No such file or directory

Чтобы решить эту проблему, я побежал -

cd /usr/lib ln -s libncursesw.so libncursesw.so.5

Это решило ошибку импорта. И это также принесло завершение вкладки в Python Repl без создания / изменения .pythonrc и .bashrc.

...