πŸŽ„This post has fully grown

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.

article cover for Custom Ipython Prompt

Custom Ipython Prompt

I've grown tired of the standard ipython prompt as it doesn't do much to give me any useful information. The default on

read more waylonwalker.com

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.

article cover for Autoreload in Ipython

Autoreload in Ipython

Autoreload in python

read more waylonwalker.com

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.")')

πŸ‘€ see an issue, edit this post on GitHub

If you found value in this post
and want to send a tip.

Buy Me A Coffee

tweet about this post and it will show up here.

←An IndieWeb Webring πŸ•ΈπŸ’β†’