In Python script, how do I set PYTHONPATH? In Python script, how do I set PYTHONPATH? unix unix

In Python script, how do I set PYTHONPATH?


You don't set PYTHONPATH, you add entries to sys.path. It's a list of directories that should be searched for Python packages, so you can just append your directories to that list.

sys.path.append('/path/to/whatever')

In fact, sys.path is initialized by splitting the value of PYTHONPATH on the path separator character (: on Linux-like systems, ; on Windows).

You can also add directories using site.addsitedir, and that method will also take into account .pth files existing within the directories you pass. (That would not be the case with directories you specify in PYTHONPATH.)


You can get and set environment variables via os.environ:

import osuser_home = os.environ["HOME"]os.environ["PYTHONPATH"] = "..."

But since your interpreter is already running, this will have no effect. You're better off using

import syssys.path.append("...")

which is the array that your PYTHONPATH will be transformed into on interpreter startup.


If you put sys.path.append('dir/to/path') without check it is already added, you could generate a long list in sys.path. For that, I recommend this:

import sysimport os # if you want this directorytry:    sys.path.index('/dir/path') # Or os.getcwd() for this directoryexcept ValueError:    sys.path.append('/dir/path') # Or os.getcwd() for this directory