环境变量PYTHONPATH
设置为$HOME/lib/python
.
中的文件树$PYTHONPATH
看起来像这样
foo/
__init__.py
bar.py
两个文件都是空的。
现在我创建一个简单的脚本,其中包含
#!/usr/bin/env python
print __file__
import bar
并将其另存为baz.py
. 如果我在其中以外的任何地方运行脚本,$PYTHONPATH/foo
则无法找到 module bar
。
但是,如果我将文件移动到该文件$PYTHONPATH/foo
并创建指向该文件的符号链接,则可以从任何地方运行它。例如:
$ cd /tmp
$ ln -s $PYTHONPATH/foo/baz.py baz
$ ./baz
./baz
$
然而__file__
设置为./baz
. 那么Python是如何找到模块栏的呢?