![Windows 和 Linux 上 PYTHONPATH 的行为有何不同?](https://linux22.com/image/1538752/Windows%20%E5%92%8C%20Linux%20%E4%B8%8A%20PYTHONPATH%20%E7%9A%84%E8%A1%8C%E4%B8%BA%E6%9C%89%E4%BD%95%E4%B8%8D%E5%90%8C%EF%BC%9F.png)
我正在尝试在 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 想要的?