对于下面的目录结构,如何将方法从一个包导入到另一个包?
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 组件作为包/模块导入?