Pregunta

Al iniciar una aplicación django utilizando python manage.py shell , obtengo una shell InteractiveConsole. Puedo usar la pestaña completa, 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)

Cuando recién inicias un intérprete de python usando python , no ofrece la opción de completar la pestaña.

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

¿Fue útil?

Solución

Es posible que haya encontrado una manera de hacerlo.

Crea 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")

luego en su archivo .bashrc, agregue

export PYTHONSTARTUP=~/.pythonrc

Eso parece funcionar.

Otros consejos

Creo que django hace algo como https://docs.python.org/library/rlcompleter. html

Si desea tener un intérprete interactivo realmente bueno, eche un vistazo a http://ipython.scipy.org/ .

Para el registro, esto se trata en el tutorial: http://docs.python.org /tutorial/interactive.html

Yo uso ptpython. https://github.com/jonathanslenders/ptpython/

ptpython es una herramienta maravillosa para autocompletar shell cmd. instalar ptpython es muy fácil, use la herramienta pip

  

pip install ptpython

y para el shell de django, debes importar el env de django, como este

  

os de importación

     

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

Confía en mí, ¡esta es la mejor manera para ti!

¡Parece que Python3 lo tiene fuera de caja!

En Python3, esta función está habilitada de forma predeterminada. Mi sistema no tenía el módulo readline instalado. Estoy en Manjaro. No enfrenté este problema de finalización de pestaña en otras distribuciones de linux (elementary, ubuntu, mint).

Después de pip instalar el módulo, al importar, se produjo el siguiente error:

ImportError: libncursesw.so.5: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio

Para resolver esto, corrí-

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

Esto resolvió el error de importación. Y también trajo la terminación de la pestaña en la respuesta de Python sin ninguna creación / cambio de .pythonrc y .bashrc .

Creo un .pythonrc.py más perfecto, puede que te resulte útil: https://gist.gpp.

solución para el shell de windows10:

  • pip install pyreadline
  • pip install ipython [shell]
scroll top