Как добавить вкладку в оболочку Python?
При запуске приложения 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?
Ответы
Ответ 1
Возможно, я нашел способ сделать это.
Создайте файл .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
Это похоже на работу.
Ответ 2
Я думаю, что django делает что-то вроде https://docs.python.org/library/rlcompleter.html
Если вы хотите, чтобы действительно хороший интерактивный интерпретатор взглянул на
http://ipython.scipy.org/.
Ответ 3
Для записи это описано в уроке: http://docs.python.org/tutorial/interactive.html
Ответ 4
Я использую ptpython.
https://github.com/jonathanslenders/ptpython/
ptpython - замечательный инструмент для автозаполнения оболочки cmd.
установить ptpython очень просто, использовать инструмент pip
pip install ptpython
и для оболочки django вам необходимо импортировать django env, например
import os
os.environ.setdefault( "DJANGO_SETTINGS_MODULE", "testweb.settings" )
Поверьте мне, это лучший способ для вас!
Ответ 5
Похоже, что python3 имеет это вне коробки!
Ответ 6
В 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
.