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

How to check if a path is in PYTHONPATH?

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

我试过:

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

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

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

os.path.normcase 将 Windows 路径规范化为适当的小写。

这将正确检查 path 是否在 PYTHONPATH、OS 独立:

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