通过符号链接的假python模块:在Windows上?

时间:2012-10-05 09:36:12

标签: python symlink python-module

我有几个已编译的python模块;它们被放入单个.so(为了避免运行时链接,存在跨模块符号依赖关系),但是许多符号链接指向此.so

foo.so -> liball.so
bar.so -> liball.so
liball.so

这样,我可以import foo(Python会调用initfoo()中定义的liball.so)或import bar(调用initbar())。

我想知道这种方法是否适用于Windows?

1 个答案:

答案 0 :(得分:0)

可能不是,但你可以用

实现目标
import sys
import liball
sys.modules['foo'] = liball
sys.modules['bar'] = liball

如果您需要在多个地方或

导入它们
import liball as foo, libalb as bar, liball

如果您只在一个地方需要它。

然而,可能无法保持initfoo()initbar()之间的区别,并且两者都必须完成,以便模块有效地包含两个模块中包含的所有内容。

如果foo部分包含与bar相同的符号,但含义不同,则此方法无效。但是你可以复制文件。这将占用比所需更多的磁盘空间,但这并没有太大的伤害,恕我直言。