How do I install the pythonstartup
file so that it runs on command like python myfile.py
?
I tried to install it into my /home/myuser
directory for Ubuntu, but it said that I had insufficient permissions. Furthermore, different places say alternately that it should be in all caps or in all lower case with a period before it. The Python command line guide does not seem to explain where to put the file, or how to change which environment variable to 'point' to it.
I'm assuming you mean the
PYTHONSTARTUP
environment variable? Try putting a filemy-python-startup.py
with some interesting contents in your home dir, then issue the following on the command line:and observe what happens. Then put the first of the above lines in the (hidden!) file
.bashrc
in your homedir to have it persist across terminal sessions.On Windows you can put your startup script just about anywhere as long as you put its path into your PYTHONSTARTUP environment variable. On Windows the lettercase of environment variable names doesn't matter.
You can define the values of user and system environment variables as described in a somewhat related answer of mine here.
How to execute the python file defined in $PYTHONSTARTUP when you execute a file like
python foobar.py
Run this command to find out where your OS has defined
USER_SITE
:Mine says:
Create a new file there called
/home/el/.local/lib64/python2.7/site-packages/usercustomize.py
, put this code in there:Close the terminal and reopen it to clear out any shenanigans.
Make a new file
python foobar.py
anywhere on the filesystem, put this code in there:Run it:
What just happened.
You used the python sitewide specific python configuration hook and imported libraries in the
usercustomize.py
file which ran before foobar.py.Documentation: https://docs.python.org/2/library/site.html
Where I found this trick: https://nedbatchelder.com/blog/201001/running_code_at_python_startup.html
In your
~/.bashrc
:and put your python code in
$HOME/.pythonstartup
, like:Then run the interactive shell:
See the imports from PYTHONSTARTUP are processed. This only works in python interactive mode.
For more information about
PYTHONSTARTUP
variable, read the python man page: