首页 > 解决方案 > 如何检查路径是否在 PYTHONPATH 中?

问题描述

如何检查路径是否在 PYTHONPATH 中?

我试过这样做:

def path_is_in_pythonpath(path):
    return str(path) in sys.path

但有时在 Windows 上运行时它不起作用。路径在 PYTHONPATH 中,但检查返回 False。

标签: pythonpathpythonpathsys.path

解决方案


事实证明,Windows 路径不区分大小写。这甚至适用于驱动器字母,尽管它们总是大写字母,但有时可能是小写字母。

os.path.normcase负责将 Windows 路径适当地标准化为小写。

这将正确检查是否pathPYTHONPATH, OS 中独立:

def path_is_in_pythonpath(path):
    path = os.path.normcase(path)
    return any(os.path.normcase(sp) == path for sp in sys.path)

推荐阅读