问题
I would like to access the $PATH variable from inside a python program. My understanding so far is that sys.path gives the Python module search path, but what I want is $PATH the environment variable. Is there a way to access that from within Python?
To give a little more background, what I ultimately want to do is find out where a user has Package_X/ installed, so that I can find the absolute path of an html file in Package_X/. If this is a bad practice or if there is a better way to accomplish this, I would appreciate any suggestions. Thanks!
回答1:
you can read environment variables accessing to the os.environ
dictionary
import os
my_path = os.environ['PATH']
about searching where a Package is installed, it depends if is installed in PATH
回答2:
To check whether a certain module is installed you can simply try importing it:
try:
import someModule
except ImportError, e:
pass # not installed
In order to check its path once its imported you can access its __path__ attribute via someModule.__path__
:
Packages support one more special attribute,
__path__
. This is initialized to be a list containing the name of the directory holding the package’s__init__.py
before the code in that file is executed.
Regarding access to environment variables from within Python
, you can do the following:
import os
os.environ['PATH']
回答3:
sys.path
and PATH
are two entirely different variables. The PATH
environment variable specifies to your shell (or more precisely, the operating system's exec()
family of system calls) where to look for binaries, whereas sys.path
is a Python-internal variable which specifies where Python looks for installable modules.
The environment variable PYTHONPATH
can be used to influence the value of sys.path
if you set it before you start Python.
Conversely, os.environ['PATH']
can be used to examine the value of PATH
from within Python (or any environment variable, really; just put its name inside the quotes instead of PATH
).
来源:https://stackoverflow.com/questions/25344841/sys-path-vs-path