Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I add tab completion to the Python shell?

I may have found a way to do it.

Create a 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")

then in your .bashrc file, add

export PYTHONSTARTUP=~/.pythonrc

That seems to work.


I think django does something like https://docs.python.org/library/rlcompleter.html

If you want to have a really good interactive interpreter have a look at IPython.


For the record, this is covered in the tutorial: http://docs.python.org/tutorial/interactive.html


I use ptpython - it is a wonderful tool autocomplete shell cmd.

Installing ptpython is very easy, use pip tool

pip install ptpython

and for django shell, you should import the django env, like this

import os

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

Trust me, this is the best way for you!!!