I use my ipython terminal daily. It's my go to way of running python most of the time. After you use it for a little bit you will probably want to setup a bit of your own configuration.

install ipython

Activate your virtual environment of choice and pip install it. Any time you are running your project in a virtual environment, you will need to install ipython inside it to access those packages from ipython.


pip install ipython

You are using a virtual environment right? Virtual environments like venv or conda can save you a ton of pain down the road.

profile_default

When you install ipython you start out with no config at all. Runnign ipython profile create will start a new profile called profile_default that contains all of the default configuration.


ipython profile create

This command will create a directory ~/.ipython/profile_default

multiple configurations

You can run multiple configurations by naming them with ipython profile create [profile_name] This command will create a directory ~/.ipython/[profile_name]


ipython profile create my_profile
ipython --profile=my-profile

startup

Inside the profile there will be a startup directory ~/.ipython/profile_default/startup. Ipython will execute each of the files in this directory on startup. This is particularly handy to create custom prompts, search, or import packages automatically for certian profiles.

custom-ipython-prompt

This post creates a custom ipython prompt by creating a ~/.ipython/profile_default/startup/prompt.py file.

ipython_config.py

There are tons of options that are in the ipython_config.py file. My favorite is to automatically enable my favorite magic command autoreload.

autoreload-ipython


c.InteractiveShellApp.extensions = ['autoreload'
c.InteractiveShellApp.exec_lines = []'%autoreload 2']
c.InteractiveShellApp.exec_lines.append('print("Warning: disable autoreload in ipython_config.py to improve performance.")')

Want automatic imports??

pyflyby

This article covers how I setup automatic imports in ipython