sys.path与$PATH的区别
我想在一个Python程序里访问$PATH这个变量。我了解到,sys.path是用来查找Python模块的路径,但我想要的是环境变量$PATH。请问有没有办法在Python里访问这个变量呢?
再多说一点背景,我最终想知道用户在哪里安装了Package_X/,这样我就能找到Package_X/里一个html文件的绝对路径。如果这样做不太好,或者有更好的方法来实现这个目标,我很欢迎任何建议。谢谢!
3 个回答
0
要检查某个模块是否已经安装,你可以简单地尝试导入它:
try:
import someModule
except ImportError, e:
pass # not installed
一旦导入成功,你可以通过 someModule.__path__
来查看它的路径,这个路径是通过它的 __path__
属性访问的:
包还支持一个特殊的属性,叫做
__path__
。这个属性会被初始化为一个列表,里面包含了存放包的__init__.py
文件的目录名称,直到这个文件中的代码被执行。
关于如何在 Python
中访问环境变量,你可以这样做:
import os
os.environ['PATH']
5
sys.path
和 PATH
是两个完全不同的变量。PATH
环境变量告诉你的命令行(更准确地说,是操作系统的 exec()
系列系统调用)去哪里寻找可执行文件,而 sys.path
是一个 Python 内部的变量,它指定了 Python 去哪里寻找可以安装的模块。
如果你在启动 Python 之前设置环境变量 PYTHONPATH
,它可以影响 sys.path
的值。
反过来,你可以通过 os.environ['PATH']
在 Python 中查看 PATH
的值(其实你可以查看任何环境变量,只需把变量名放在引号里,替换掉 PATH
)。
4
你可以通过访问 os.environ
这个字典来读取环境变量。
import os
my_path = os.environ['PATH']
关于查找一个包安装在哪里,这要看它是否安装在 PATH 里。