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?

Foi útil?

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]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top