Domanda

All'avvio di un'applicazione django usando python manage.py shell , ottengo una shell InteractiveConsole - posso usare il completamento della scheda, ecc.

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 si avvia un interprete python usando python , non offre il completamento della scheda.

Qualcuno può dirmi cosa sta facendo django per darmi una console interattiva o cosa devo fare per avviare una console interattiva senza un'app django?

È stato utile?

Soluzione

Potrei aver trovato il modo di farlo.

Crea un file .pythonrc

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

quindi nel tuo file .bashrc, aggiungi

export PYTHONSTARTUP=~/.pythonrc

Sembra funzionare.

Altri suggerimenti

Penso che django faccia qualcosa come https://docs.python.org/library/rlcompleter. html

Se vuoi avere un interprete interattivo davvero valido, dai un'occhiata http://ipython.scipy.org/ .

Per la cronaca, questo è trattato nel tutorial: http://docs.python.org /tutorial/interactive.html

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

ptpython è un meraviglioso strumento di completamento automatico della shell cmd. installare ptpython è molto semplice, usa lo strumento pip

  

pip install ptpython

e per la shell django, dovresti importare env django, in questo modo

  

import os

     

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

Fidati di me, questo è il modo migliore per te !!!

Sembra che python3 sia pronto per l'uso!

In Python3 questa funzione è abilitata per impostazione predefinita. Nel mio sistema non era installato il modulo readline . Sono a Manjaro. Non ho riscontrato questo problema di completamento delle schede su altre distribuzioni di Linux (elementare, ubuntu, pari).

Dopo aver pip installato il modulo, durante l'importazione, stava lanciando il seguente errore-

ImportError: libncursesw.so.5: impossibile aprire il file oggetto condiviso: nessun file o directory

Per risolvere questo, ho corso-

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

Questo ha risolto l'errore di importazione. E ha anche portato il completamento della scheda in Python repl senza alcuna creazione / modifica di .pythonrc e .bashrc .

Creo un .pythonrc.py più perfetto, potresti trovare utile: https://gist.github.com/guyskk/6f3522e3d17135b470bf3d982c80cc01

correzione per shell windows10:

  • pip install pyreadline
  • pip install ipython [shell]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top