对于下面的目录结构,如何将方法从一个包导入到另一个包?

Posted

技术标签:

【中文标题】对于下面的目录结构,如何将方法从一个包导入到另一个包?【英文标题】:How to import method from one package to another for the directory structure below? 【发布时间】:2022-01-15 06:34:56 【问题描述】:

下面是我在导入模块时遇到问题的目录结构。

.
├── A
│   └── a.py
└── B
    └── C
        └── b.py

假设B/C/b.py 中有一个方法foo() 将被导入A/a.py

但是,当我尝试导入 foo() 时,如下所示 -

# A/a.py
from B.C import foo

我收到一条错误消息 -

unable to import 'B.C'.

我尝试过的另一种方法是像这样使用相对导入 -

# A/a.py
from ..B.C import foo

但是,我再次收到错误提示

Attempted relative import beyond top-level package.

我应该如何将foo()B/C/b.py导入A/a.py

【问题讨论】:

【参考方案1】:

您需要将项目构建为一个

通过添加__init__.py 指定的here 文件,您指定了一个***包,因此您可以使用以下命令导入B/C/b.py:

from src.B.C import b
src
├── __init__.py
├── A
│   ├── a.py
│   └── __init__.py
└── B
    ├── __init__.py
    └── C
        ├── __init__.py
        └── b.py

【讨论】:

以上是关于对于下面的目录结构,如何将方法从一个包导入到另一个包?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Matlab中将数据从一个文本文件复制到另一个文本文件

如何从其他(非项目)目录将 React 组件作为包/模块导入?

从另一个包和文件 golang 导入结构

vs中如何 将一个文件复制到另一个文件夹中, 需要导入命名空间吗

如何导入已安装到另一个目录的 Python 库?

如何以透明的方式从另一个 git 分支获取目录的副本?