Windows 和 Linux 上 PYTHONPATH 的行为有何不同?

Windows 和 Linux 上 PYTHONPATH 的行为有何不同?

我正在尝试在 Windows 和 Linux 上设置相同的 Python github 项目。在 Windows 上,我有

echo %PYTHONPATH%
c:\project_foo

在 Linux 上我有

echo $PYTHONPATH
:/home/vagrant/project_foo

该文件夹内project_foo还有另一个project_foo包含源代码的文件夹。

在 Windows 上,这些导入可以正常工作:

import project_foo.module_1
import project_foo.module_2

在 Linux 上,它不起作用。它给出了错误:

>>> import project_foo.module_1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named project_foo.module_1

但是,如果我将其添加/home/vagrant/到我的 PYTHONPATH 中,上述操作在 Linux 上有效。或者,在 Linux 上,这也有效:

import module_1

这是为什么?为什么 Windows 和 Linux 的行为不同?哪种行为是 python 想要的?

相关内容