Tab autocompletetion with python interpreter in bash terminal
Posted on Sat 29 October 2016 in Misc
I want to tab autocomplete commands in my python interpreter within bash terminal. This is very useful when I import a module and just want to browse through the methods and autocomplete.
Found two ways to do it. Thanks to stack overflow posts.
Method 1 (as mentioned here):
This is easy. Install pyreadline (pip install pyreadline) and use ipython. This is a snapshot of it working.
Method 2 ( as mentioned here):
This is for standard python interpreter in bash terminal (such as in Ubuntu). This method requires readline and rlcompeter modules. Install these modules if you do not have them installed. This can be done with pip.
Basically, the idea is to have a python interpreter look for the value of environment path variable "PYTHONSTARTUP". This variable should be set to a location for the file ("python startup file.py") with commands that enable tab autocompletion.
In my home directory "/home/bjuluri" I make a file called "python startup file.py" by
bjuluri@bjuluri-VirtualBox:\~\$ gedit python startup file.py
copy and paste following lines
try:
import readline
except ImportError:
print "Module readline not available."
else:
import rlcompleter
readline.parse and bind("tab: complete")
Save and close the file.
Now lets assign the an environmental variable "PYTHONSTARTUP" to the location of this "python startup file"
./bashrc is loaded whenever a bash terminal is fired. This file sits in the user's home directory, we will edit it and assign the environmental variable at the end of the file.
nano .bashrc
at the end of the file, copy and paste
export PYTHONSTARTUP="python startup file.py"
Save the file and exit.
reload the .bashrc file in terminal by either opening a new terminal or by typing the following in the current terminal.
source .bashrc
Once those commands run at the python startup, tab autocompletion with suggestions will be enabled in the interpreter.