环境变量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是如何找到模块栏的呢?