将目录添加到sys.path / PYTHONPATH

发布于 2021-01-29 15:08:33

我正在尝试从特定目录导入模块。

问题是,如果我使用sys.path.append(mod_directory)附加路径然后打开python解释器,则该目录mod_directory将添加到列表sys.path的末尾。如果我PYTHONPATH在打开python解释器之前导出变量,则目录将添加到列表的开头。在后一种情况下,我可以导入模块,而在前一种情况下,我不能。

有人可以解释为什么会发生这种情况,并给我一个 python脚本中将其添加mod_directory到开始的解决方案吗? __

关注者
0
被浏览
108
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如文档所述,这正在工作。PYTHONPATH文件中指定的任何路径通常在工作目录之后但在标准解释器提供的路径之前记录。
    sys.path.append()追加到现有路径。看到这里这里。如果要让特定目录优先出现,只需将其插入sys.path的开头即可:

    import sys
    sys.path.insert(0,'/path/to/mod_directory')
    

    也就是说,通常有比直接使用PYTHONPATH或操纵更好的方法来管理进口sys.path。例如,请参阅此问题的答案。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看