Today I learned that you can run custom Python code when Python starts-up, before running other scripts or programs.
You can run custom Python code, every time Python starts-up to run a program or a script, if you customise the file sitecustomize.py
in your directory site-packages
.
By default, this file doesn't exist. However, if you create it and write the code below, Python will print “Hello!” every time it runs something else:
# sitecustomize.py
print("Hello!")
For example, if you run the command pip --version
, you will be greeted:
❯ pip --version
Hello!
pip 23.3.1 from /Users/rodrigogs/.pyenv/versions/3.12.0/lib/python3.12/site-packages/pip (python 3.12)
site-packages
isIf you open the Python REPL, you can use the built-in module site
to figure out where the directory site-packages
is located:
>>> import site
>>> site.getsitepackages()
['/Users/rodrigogs/.pyenv/versions/3.12.0/lib/python3.12/site-packages']
With the output of the code above, now I know where to put the file sitecustomize.py
.
You can also run the command below, if you can't be bothered to open the Python REPL:
❯ python -c "import site; print(site.getsitepackages())"
If all you want is to customise the REPL, and not necessarily every single thing that runs on/with Python, you can read my previous TIL on how to customise the REPL on start-up.
+35 chapters. +400 pages. Hundreds of examples. Over 30,000 readers!
My book “Pydon'ts” teaches you how to write elegant, expressive, and Pythonic code, to help you become a better developer. >>> Download it here 🐍🚀.