python - 导入作为符号链接的文件

时间:2009-07-21 09:15:35

标签: python testing import

如果我有x.py和y.py文件。而y.py是x.py的链接(象征性或硬性)。

如果我在我的脚本中导入两个模块。它会导入一次还是假设两者都是不同的文件并导入两次。

它究竟做了什么?

2 个答案:

答案 0 :(得分:10)

在脚本本身是符号链接的情况下,您必须要小心,在这种情况下,sys.path的第一个条目将是包含链接目标的目录。

答案 1 :(得分:9)

Python将导入两次。

链接是文件系统概念。对于Python解释器,x.pyy.py是两个不同的模块。

$ echo print \"importing \" + __file__ > x.py
$ ln -s x.py y.py
$ python -c "import x; import y"
importing x.py
importing y.py
$ python -c "import x; import y"
importing x.pyc
importing y.pyc
$ ls -F *.py *.pyc
x.py  x.pyc  y.py@  y.pyc