【发布时间】:2020-07-27 21:52:04
【问题描述】:
如何检查路径是否在 PYTHONPATH 中?
我已经尝试过:
def path_is_in_pythonpath(path):
return str(path) in sys.path
但有时在 Windows 上运行时它不起作用。路径在 PYTHONPATH 中,但检查返回 False。
【问题讨论】:
标签: python path pythonpath sys.path
如何检查路径是否在 PYTHONPATH 中?
我已经尝试过:
def path_is_in_pythonpath(path):
return str(path) in sys.path
但有时在 Windows 上运行时它不起作用。路径在 PYTHONPATH 中,但检查返回 False。
【问题讨论】:
标签: python path pythonpath sys.path
事实证明,Windows 路径不区分大小写。这甚至适用于驱动器字母,尽管它们总是大写字母,但有时可能是小写字母。
os.path.normcase 负责将 Windows 路径适当地标准化为小写。
这将正确检查path 是否在PYTHONPATH 中,独立于操作系统:
def path_is_in_pythonpath(path):
path = os.path.normcase(path)
return any(os.path.normcase(sp) == path for sp in sys.path)
【讨论】: