run python command line interpreter with imports loaded automatically

I use PYTHONSTARTUP.

My .bash_profile has a path to my home folder .pyrc, which as the import statements in it.

https://docs.python.org/3/using/cmdline.html#envvar-PYTHONSTARTUP


You can create a script with the code you wish to run automatically, then use python -i to run it. For example, create a script (let's call it script.py) with this:

import foo
import baz
l = [1,2,3,4]

Then run the script

$ python -i script.py
>>> print l
[1, 2, 3, 4]

After the script has completed running, python leaves you in an interactive session with the results of the script still around.

If you really want some things done every time you run python, you can set the environment variable PYTHONSTARTUP to a script which will be run every time you start python. See the documentation on the interactive startup file.


I came across this question when trying to configure a new desk for my research and found that the answers above didn't quite suit my desire: to contain the entire desk configuration within one file (meaning I wouldn't create a separate script.py as suggested by @srgerg).

This is how I ended up achieving my goal:

export PYTHONPATH=$READ_GEN_PATH:$PYTHONPATH

alias prepy="python3 -i -c \"
from naive_short_read_gen import ReadGen
from neblue import neblue\""

In this case neblue is in the CWD (so no path extension is required there), whereas naive_short_read_gen is in an arbitrary directory on my system, which is specified via $READ_GEN_PATH.

You could do this in a single line if necessary: alias prepy=PYTHONPATH=$EXTRA_PATH:$PYTHONPATH python3 -i -c ....

Tags:

Python