从两个导出具有相同名称的程序包的项目导入

2024-06-06 22:00:30 发布

您现在位置:Python中文网/ 问答频道 /正文

为了详细说明这个问题,假设我的包中有以下两个pyproject.toml,它们将用于另一个项目(下文稍后介绍),一个名称与根目录名称不同:

[tool.poetry]
name = "my-module-one"
version = "0.0.1"
description = ""
authors = []
packages = [
  { include = "some_module" }
]
[tool.poetry]
name = "my-module-two"
version = "0.0.1"
description = ""
authors = []
packages = [
  { include = "some_module" }
]

项目的目录结构是这样的(都是使用诗歌管理的)

my-project/
|- my-module-one/
|  |- pyproject.toml
|  |- some_module/
|     |- something.py
|- my-module-two/
|  |- pyproject.toml
|  |- some_module/
|     |- something.py
|- app/
   |- main.py
   |- pyproject.toml

现在,通常情况下,我们会使用如下方式安装和导入其中一个:

app$ poetry add ../my-module-one

然后像这样导入它

# File: app/main.py
from some_module import something

在导入安装的两个模块时,这会成为一个问题,因为在本例中,它们导出的目录具有相同的名称(我无权更改此名称)。因此,我希望能够像这样导入:

# Import some_module from my-module-one
from some_module_one import something as something_one

# Import some_module from my-module-two
from some_module_two import something as something_two

有可能做到这一点吗?如果是,我们怎么做

注:我有点想以某种方式将其中一个模块的导出命名为my-module-onesomething变成something_one,但找不到方法


Tags: 项目frompyimport名称apppoetrymy