将目录添加到sys.path / PYTHONPATH

我正试图从一个特定的目录中导入一个模块。

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

有人可以解释为什么发生这种情况,并给我一个解决scheme,以添加mod_directory的开始, python脚本内?

这是按照logging工作。 在PYTHONPATH中指定的任何path都logging为通常在工作目录之后但在标准解释程序提供的path之前。 sys.path.append()追加到现有的path。 看到这里和这里 。 如果你想要一个特定的目录先放在sys.path的头部:

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

也就是说,pipe理导入通常比使用PYTHONPATH或直接操作sys.path更好。 例如,看这个问题的答案。

你可以使用:

 import os path = 'the path you want' os.environ['PATH'] += ':'+path