3

According to documentation, sys.path is initialized from PYTHONPATH when a Python interpreter session starts. However, in my case, PYTHONPATH variable is empty. When I execute this in a terminal:

echo $PYTHONPATH

it returns blank. On the other hand, when I start the Python REPL and inspect sys.path:

import sys
print (sys.path)

I get back a long list of paths. Where do those get loaded from? What am I missing?

1
  • 1
    PYTHONPATH is usually undefined or empty Commented Feb 3, 2018 at 17:41

1 Answer 1

6

Check the documentation again:

It says

[sys.path is initialized] from the environment variable PYTHONPATH, plus an installation-dependent default.

And furthermore,

the first item of this list, path[0], is the directory containing the script that was used to invoke the Python interpreter [… or] the empty string

That’s why yours isn’t empty.

Sign up to request clarification or add additional context in comments.

3 Comments

Also, some added explanation here on what PYTHONPATH is and when to use it. It is up to you to set what you want in that env var for additional paths you might want to use.
Thanks. Can you elaborate on installation-dependent defaults?
@Matej Not really: I don’t know exactly where they are configured but most of them are probably hard-coded into the Python configuration during compilation/installation. When installing Python from source you can configure its “prefix” path. That value, in conjunction with relative library path locations, is used to populate sys.path.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.