为什么Python遵循符号链接?我该如何解决这个问题?

时间:2013-12-02 00:27:08

标签: python linux git python-2.7 symlink

这是我的目录布局:

projects/
   +-projectA/
     |---moduleA.py
     |---script.py -> ../projectB/script.py
   +-projectB/
     |---script.py

这是script.py包含的内容:

import moduleA
print "hello there"

这就是我正在做的事情:

$ pwd
[...]/projects/projectA

$ python2 script.py
Traceback (most recent call last):
  File "script.py", line 1, in <module>
    import moduleA
ImportError: No module named moduleA

这种布局的原因是项目A和项目B都来自 git 存储库,并且每隔一段时间就会更新一次。但是,我编写projectB并想要编辑和推送它,而不必复制文件(它依赖于项目A中的东西)。

将它作为子模块 / projectA的一部分不是一个选项,因为脚本具有项目A的维护者不想要的依赖项。

反过来也不是一个选项,因为它也是如此之小,以至于它不能保证将项目A(实际上很多,实际上是很多不同的模块)作为项目B中的子模块添加,这也会产生不必要的额外文件。此外,用户主要位于项目A的目录中,因此无论如何子模块都没有意义。

出于显而易见的原因,我也不想使用硬链接。我也做不了像

这样的事情
sys.path.append("../projectA")
在script.py中的

,因为script.py的其他用户可能没有和我一样的目录布局,有些会直接将它下载到projectA(没有克隆)。

首先,为什么python解释器遵循该符号链接,而不是像在projectA的目录中那样执行代码?

其次,如何通过上述警告解决此问题?

(请随意回答上述两个问题中的一个。)

0 个答案:

没有答案