保持不同目录下具有相同顶级名称的Python包

7 浏览
0 Comments

保持不同目录下具有相同顶级名称的Python包

我有几个Python包,我想将它们存在不同的文件系统中,但不幸的是它们都共享相同的顶级模块名称。

为了说明问题,目录结构如下所示:

/fs1
  /top
    __init__.py
    /sub1
      __init__.py
/fs2
  /top
    __init__.py
    /sub2
      __init__.py

在Python 2.7中,我可以设置我的PYTHONPATH,使得我可以在同一个脚本中导入top.sub1top.sub2吗?但是添加/fs1/fs2不起作用,因为它只允许导入两个子模块中的一个(取决于在PYTHONPATH中出现的顺序)。

我可以将这两个文件树复制/链接到一个文件中,但出于实际原因,我不想这样做。

admin 更改状态以发布 2023年5月24日
0
0 Comments

有几个选项,其中之一是imp

import imp
foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()

我的资料来源


另一个选项是使用importlib

相对路径:

importlib.import_module('.sub1', 'fs1.top')

绝对路径:

importlib.import_module('fs1.top.sub1')

我的资料来源

0