sys.path vs. $PATH

岁酱吖の 提交于 2020-12-26 06:57:40

问题


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.environdictionary

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!