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.
Right-click My Computer and click Properties. Click the Advanced tab and click Environment Variables. Under System variables, click New. Add PYTHONSTARTUP to Variable name.
PYTHONSTARTUP. If this is the name of a readable file, the Python commands in that file are executed before the first prompt is displayed in interactive mode.
PYTHONSTARTUP is an environment variable you will define specifying the location of the path to a python file. This python script will be run by python before starting the python interactive mode (interpreter). You can use it for various enhancements like preloading modules, setting colors.
In your ~/.bashrc
:
export PYTHONSTARTUP=$HOME/.pythonstartup
and put your python code in $HOME/.pythonstartup
, like:
import rlcompleter
import readline
readline.parse_and_bind("tab: complete")
Then run the interactive shell:
python
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:
$ man python
python foobar.py
Run this command to find out where your OS has defined USER_SITE
:
$ python -c "import site; site._script()"
Mine says:
USER_SITE: '/home/el/.local/lib64/python2.7/site-packages'
Create a new file there called /home/el/.local/lib64/python2.7/site-packages/usercustomize.py
, put this code in there:
try:
import your_things
import readline
print("ROCKETMAN!")
except ImportError:
print("Can't load your things")
print("Either exit here, or perform remedial actions")
exit()
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:
#Note there is no your_things module imported here.
#Print your_things version:
print(your_things.__version__)
Run it:
python foobar.py
ROCKETMAN!
'1.12.0'
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With