python - 导入符号链接文件

11 投票
2 回答
7462 浏览
提问于 2025-04-15 13:03

如果我有两个文件,x.py 和 y.py,而 y.py 是指向 x.py 的一个链接(可以是符号链接或者硬链接)。

如果我在我的脚本中同时导入这两个模块,它会只导入一次,还是会认为这两个文件是不同的,然后导入两次呢?

它到底是怎么做的呢?

2 个回答

13

你只需要在脚本本身是一个符号链接的情况下多加小心。在这种情况下,sys.path的第一个条目将是链接目标所在的目录。

12

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

撰写回答