My code is:
import scriptlib.abc
import scriptlib.xyz
def foo():
... some operations
but the scriptlib is in some other directory, so I will have to include that directory in environment variable "PYTHONPATH".
Is there anyway in which I can first add the scriptlib directory in environment variable "PYTHONPATH" before import statement getting executed like :
import sys
sys.path.append('/mypath/scriptlib')
import scriptlib.abc
import scriptlib.xyz
def foo():
... some operations
If so, is the value only for that command prompt or is it global ?
Thanks in advance
This will add a path to your Python process / instance (i.e. the running executable). The path will not be modified for any other Python processes. Another running Python program will not have its path modified, and if you exit your program and run again the path will not include what you added before. What are you are doing is generally correct.
set.py:
loop.py
run:
python loop.py &
This will run loop.py, connected to your STDOUT, and it will continue to run in the background. You can then run
python set.py
. Each has a different set of environment variables. Observe that the output fromloop.py
does not change becauseset.py
does not changeloop.py
's environment.A note on importing
Python imports are dynamic, like the rest of the language. There is no static linking going on. The import is an executable line, just like
sys.path.append...
.As also noted in the docs here.
Go to
Python X.X/Lib
and add these lines to thesite.py
there,This changes your
sys.path
so that on every load, it will have that value in it..As stated here about
site.py
,For other possible methods of adding some path to
sys.path
see these docs