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.


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


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.


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


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


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??


This article covers how I setup automatic imports in ipython