如何检查路径是否在PYTHONPATH中?
我尝试过:
def path_is_in_pythonpath(path):
return str(path) in sys.path
但在Windows上运行时,它有时不起作用。路径在PYTHONPATH中,但检查返回False。
事实证明,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)