2008-10-29 11 views
83

Cuando se inicia una aplicación Django usando python manage.py shell, me sale una cáscara InteractiveConsole - Puedo utilizar la implementación del tabulador, etc.¿Cómo agrego la finalización de pestañas al shell de Python?

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) 

Cuando acaba de empezar un intérprete de Python usando python, que no ofrece la implementación del tabulador.

¿Puede alguien decirme qué está haciendo django para darme una consola interactiva, o qué debo hacer para iniciar una consola interactiva sin una aplicación django?

+0

Cuando escribe python, obtiene un >>> mensaje, ¿verdad? Ese es el caparazón interactivo. ¿Cuál es tu pregunta? –

+3

No ofrece la terminación de pestañas. Ese es el problema. – ashchristopher

+0

Por favor, actualice su pregunta para especificar eso. –

Respuesta

144

Puede haber encontrado una manera de hacerlo.

Crear un archivo .pythonrc

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

entonces en su archivo .bashrc, añadir

export PYTHONSTARTUP=~/.pythonrc 

que parece funcionar.

+2

esto funciona para Jython donde IPython y bpython no están disponibles actualmente. –

+1

Por alguna razón, lo anterior funcionó para mí en mi viejo mac con "león de montaña" pero no funcionaba para mac nuevo con "el captan". Necesito '' source ~/.bashrc'' cada vez para que funcione antes de iniciar el intérprete de Python. ¿Algun consejo? – hmi

+1

@hmi Intente unificar sus '.bashrc' y' .bash_profile' como se sugiere en la parte inferior de esta página: http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html También proporciona información sobre la diferencia entre ellos. Puede que no resuelva el problema, pero podría ser útil. – Dangercrow

6

utilizo ptpython. https://github.com/jonathanslenders/ptpython/

ptpython es una maravillosa herramienta autocompletar shell cmd. instalar ptpython es muy fácil, utilice la herramienta PIP

pip instalación ptpython

y para la cáscara de Django, debe importar el Django env, como este

import os

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

¡Confíe en mí, esta es la mejor manera para usted!

+0

Muy útil. Gracias Alan – python

3

Parece que python3 lo tiene fuera de la caja!

0

En Python3 esta característica está habilitada de forma predeterminada. Mi sistema no tenía instalado el módulo readline. Estoy en Manjaro. No me enfrenté a este problema de finalización de tabulación en otras distribuciones de Linux (elemental, ubuntu, mint).

Después pip de instalar el módulo, mientras que la importación, que estaba lanzando el siguiente de errores

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

Para solucionar esto, ran-

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

Esto resuelve el error de importación . Y, también trajo la terminación de tabulación en la réplica python sin ninguna creación/cambios de .pythonrc y .bashrc.

Cuestiones relacionadas