sys.path与$ PATH

时间:2014-08-16 23:09:37

标签: python bash filesystems sys

我想从python程序中访问$ PATH变量。到目前为止我的理解是sys.path给出了Python模块的搜索路径,但我想要的是$ PATH环境变量。有没有办法从Python中访问它?

为了给出更多背景知识,我最终想要做的是找出用户安装了Package_X /的位置,这样我就可以在Package_X /中找到html文件的绝对路径。如果这是一个不好的做法,或者有更好的方法来实现这一点,我将不胜感激任何建议。谢谢!

3 个答案:

答案 0 :(得分:3)

您可以阅读访问os.environ字典

的环境变量
import os

my_path = os.environ['PATH']

关于搜索Package的安装位置,取决于是否安装在PATH

答案 1 :(得分:0)

要检查是否安装了某个模块,您只需尝试导入它:

try:
    import someModule
except ImportError, e:
    pass # not installed

要在导入后检查其路径,您可以通过someModule.__path__访问其__path__属性:

  

Packages支持另一个特殊属性__path__。这是   初始化为包含目录保存名称的列表   在执行该文件中的代码之前,包__init__.py

关于从Python内部访问环境变量,您可以执行以下操作:

import os
os.environ['PATH']

答案 2 :(得分:0)

sys.pathPATH是两个完全不同的变量。 PATH环境变量向您的Shell(或更确切地说,操作系统的exec()系列系统调用)指定了在哪里寻找二进制文件,而sys.path是Python内部变量,它指定了Python在哪里寻找可安装的模块。

如果在启动Python之前进行了设置,则可以使用环境变量PYTHONPATH来影响sys.path的值。

相反,os.environ['PATH']可用于从Python内部检查PATH的值(或实际上是任何环境变量;只需将其名称放在引号内,而不是PATH)。