script - ¿Cómo agrego la finalización de pestañas al shell de Python?
ejecutar python en linux (6)
Al iniciar una aplicación django utilizando el python manage.py shell
, obtengo un shell de InteractiveConsole: puedo usar la finalización de pestañas, 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 acaba de iniciar un intérprete de Python utilizando python
, no ofrece la finalización de tabulación.
¿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 django?
¡Parece que python3 lo tiene fuera de la caja!
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/ .
En Python3, esta característica está habilitada de forma predeterminada. Mi sistema no tenía instalada la línea de readline
del módulo. 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 de instalar el módulo de pip
, durante la importación, arrojaba el siguiente error-
ImportError: libncursesw.so.5: cannot open shared object file: No such file or directory
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 tabulación en la réplica python sin ninguna creación / cambios de .pythonrc
y .bashrc
.
Para el registro, esto se trata en el tutorial: http://docs.python.org/tutorial/interactive.html
Pude haber 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.
Yo uso ptpython. https://github.com/jonathanslenders/ptpython/
ptpython es una maravillosa herramienta autocompletar shell cmd. instalar ptpython es muy fácil, use la herramienta pip
pip install ptpython
y para django shell, debes importar el env de django, como este
importación os
os.environ.setdefault ("DJANGO_SETTINGS_MODULE", "testweb.settings")
¡¡Confía en mí, esta es la mejor manera para ti !!!