7
如果我有文件x.py和y.py。而y.py是x.py的链接(符号或硬)。python - 导入一个文件是一个符号链接
如果我将两个模块都导入到我的脚本中。它会导入一次还是假定它们都是不同的文件并将其导入两次。
它究竟做了什么?
如果我有文件x.py和y.py。而y.py是x.py的链接(符号或硬)。python - 导入一个文件是一个符号链接
如果我将两个模块都导入到我的脚本中。它会导入一次还是假定它们都是不同的文件并将其导入两次。
它究竟做了什么?
Python会导入它两次。
链接是文件系统的概念。对于Python解释器,x.py
和y.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 [email protected] y.pyc
你只需要在您的脚本本身是一个符号链接,在这种情况下sys.path中的第一项将是包含链接的目标目录的情况下谨慎。
啊,是的,我只是碰到了那个。我在我的'部署'区域指向一个脚本,它在开发过程中是我正在编辑的原始副本的符号链接。花了我很长时间来弄清楚为什么python无法找到其他直接位于符号链接处的模块。其实很烦人。 – 2011-09-15 20:44:47