I know how to set it in my /etc/profile and in my environment variables.
But what if I want to set it during a script? Is it import os, sys? How do I do it?
This question is related to
python
linux
unix
environment-variables
You can get and set environment variables via os.environ
:
import os
user_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 sys
sys.path.append("...")
which is the array that your PYTHONPATH
will be transformed into on interpreter startup.
PYTHONPATH ends up in sys.path, which you can modify at runtime.
import sys
sys.path += ["whatever"]
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 sys
import os # if you want this directory
try:
sys.path.index('/dir/path') # Or os.getcwd() for this directory
except ValueError:
sys.path.append('/dir/path') # Or os.getcwd() for this directory
I linux this works too:
import sys
sys.path.extend(["/path/to/dotpy/file/"])
you can set PYTHONPATH
, by os.environ['PATHPYTHON']=/some/path
, then you need to call os.system('python')
to restart the python shell to make the newly added path effective.
Source: Stackoverflow.com