当前位置: 首页 > 知识库问答 >
问题:

在不同的目录中保留具有相同顶级名称的Python包

柯星辰
2023-03-14

我有几个Python包,我想保留在不同的文件系统上,但不幸的是它们共享相同的顶级模块名。

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

/fs1
  /top
    __init__.py
    /sub1
      __init__.py

/fs2
  /top
    __init__.py
    /sub2
      __init__.py

在Python2.7中,是否有任何方法可以设置我的PYTHONPATH,以便导入这两个top。sub1和顶部。将sub2放入同一脚本中?添加/fs1/fs2都不起作用,因为它只允许导入两个子模块中的一个子模块(以PYTHONPATH上的第一个子模块为准)。

我可以将这两棵树复制/符号连接成一棵树,但出于实际原因,我宁愿不这样做。


共有1个答案

雷献
2023-03-14

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

import imp

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

(我的来源)

另一个是与Imglib

亲属:

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

绝对的:

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

(我的来源)

 类似资料:
  • 问题内容: 我的问题是为什么我不能再次调用该函数?或者,如何做到这一点? 假设我有这个功能: 我称之为: 我得到4。 但是,假设我声明了一个与该函数同名的变量(错误): 现在,如果我尝试这样做: 要么: 我将收到此错误:“ TypeError:’int’对象不可调用” 无法将变量“ a”分配给函数? 问题答案: 完成此操作后: 不再是一个 函数 ,而只是一个 整数 (您已将其重新分配!)。因此,很

  • 问题内容: 我正在做一个大项目,该项目很可能最终包含成千上万行代码,对于当前结构,我喜欢这样: 这样做的问题是controllers和models目录包含很多文件,全部使用和。因此,我正在考虑将其拆分为: 凡在控制器包的用户文件中可能包含的文件,等等。 现在,我读到像或那样的软件包是不好的做法,但是我担心对这两个软件包进行命名可能不是一个好主意,因为它们是同一项目的一部分(即使它们位于不同的目录中

  • 问题内容: 该查询工作正常。但是问题是,产品表和类别表都具有名为“ name”和“ id”的字段。因此,当我获取此查询的结果时,它只给我一个名称和一个ID,但同时又需要ID和名称。 我如何做到这一点而不必重命名字段?是否可以使用自定义名称(例如product_name和category_name)返回? 问题答案: 您可以将别名添加到字段:

  • 问题内容: 如何在不同的程序包中访问两个具有相同名称的类? 和 所有这些都在同一个班级 谢谢。 问题答案: 您将必须导入另一个,您将编写完全合格的路径 例如在您的代码中:

  • 问题内容: 我是Swift的新手,我已经遍历了一些教程,其中许多教程使用同一个名称多次定义了一个函数。 我已经习惯了其他编程语言,否则将无法执行此操作。 因此,我检查了官方的Swift手册,还检查了override关键字,以了解可以得到的结果,但是仍然无法理解以下代码: 从我看到的函数tableView设置在第1行和第5行,我注意到的唯一区别是第一个tableView函数返回,而第二个函数返回(U

  • 在我的程序中,我得到以下返回组名的字符串: 有时甚至更多的组名: 所以我有了所有组的名称,但它们之间用逗号隔开,嵌套在文本中。 如何从引号之间的字符串中获得所有单词? 我想把下面的组名从上面的字符串写到一个数据帧中,例如: 当前1 断开扭矩 压力 有人知道怎么做吗?