符号链接如何影响Python查找模块的方式?
环境变量符号链接如何影响Python查找模块的方式?,python,Python,环境变量PYTHONPATH设置为$HOME/lib/python $PYTHONPATH中的文件树如下所示 foo/ __init__.py bar.py 两个文件都是空的 现在,我创建了一个简单的脚本,其中包含 #!/usr/bin/env python print __file__ import bar 并将其另存为baz.py。如果我在其他地方运行脚本 在$PYTHONPATH/foo中,它找不到模块栏 但是,如果我将文件移动到$PYTHONPAT
PYTHONPATH
设置为$HOME/lib/python
$PYTHONPATH
中的文件树如下所示
foo/
__init__.py
bar.py
两个文件都是空的
现在,我创建了一个简单的脚本,其中包含
#!/usr/bin/env python
print __file__
import bar
并将其另存为baz.py
。如果我在其他地方运行脚本
在$PYTHONPATH/foo
中,它找不到模块栏
但是,如果我将文件移动到$PYTHONPATH/foo
并创建符号链接
对于那个文件,我可以在任何地方运行它。例如:
$ cd /tmp
$ ln -s $PYTHONPATH/foo/baz.py baz
$ ./baz
./baz
$
然而,
\uu文件
设置为/baz
。那么Python是如何找到模块栏的呢?如果foo
在PYTHONPATH中,那么来自foo导入栏的应该可以在任何地方工作
符号链接解析为其指向的路径。然后Python获取实际文件,并开始导入逻辑