Como faço para adicionar a conclusão de tabulação para o shell Python?
-
05-07-2019 - |
Pergunta
Ao iniciar uma aplicação Django usando python manage.py shell
, eu recebo um shell InteractiveConsole -. Posso usar a conclusão de tabulação, etc
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)
Quando apenas começando um python intérprete usando python
, ele não oferece a conclusão de tabulação.
Alguém pode me dizer o que o Django está fazendo para me dar um console interativo, ou o que eu preciso fazer para começar um console interativo sem uma Django app?
Solução
que pode ter encontrado uma maneira de fazê-lo.
Crie um arquivo .pythonrc
# ~/.pythonrc
# enable syntax completion
try:
import readline
except ImportError:
print("Module readline not available.")
else:
import rlcompleter
readline.parse_and_bind("tab: complete")
, em seguida, em seu arquivo .bashrc, add
export PYTHONSTARTUP=~/.pythonrc
que parece funcionar.
Outras dicas
Eu acho que o Django faz algo como https://docs.python.org/library/rlcompleter. html
Se você quiser ter um bom intérprete interativo ter um olhar http://ipython.scipy.org/ .
Para o registro, este é coberto no tutorial: http://docs.python.org /tutorial/interactive.html
Eu uso ptpython. https://github.com/jonathanslenders/ptpython/
ptpython é uma maravilhosa ferramenta de autocomplete shell cmd. instalar ptpython é muito fácil, ferramenta de uso pip
pip instalar ptpython
e para django shell, você deve importar o django env, como este
import os
os.environ.setdefault ( "DJANGO_SETTINGS_MODULE", "testweb.settings")
Trust me, esta é a melhor maneira de você !!!
Parece que python3 tem out-da caixa!
Em Python3 esse recurso é ativado por padrão. Meu sistema não tem o módulo readline
instalado. Estou em Manjaro. Eu não enfrentar esta questão a conclusão de tabulação em outras distribuições Linux (elementar, ubuntu, hortelã).
Depois de pip
instalar o módulo, durante a importação, ele estava jogando o seguinte erro -
ImportError: libncursesw.so.5: cannot open shared object file: No such file or directory
Para resolver isso, eu corri -
cd /usr/lib
ln -s libncursesw.so libncursesw.so.5
Esta resolvido o erro de importação. E, também trouxe a conclusão de tabulação na repl python sem qualquer criação / muda de .pythonrc
e .bashrc
.
Eu criar um .pythonrc.py
mais perfeito, você pode encontrada é útil:
https://gist.github.com/guyskk/6f3522e3d17135b470bf3d982c80cc01
correção para shell Windows 10:
- pip instalar pyreadline
- pip instalar ipython [shell]