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

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

马新觉
2023-03-14

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

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

比方说,有一个方法foo()B/C/b.py中,它将被导入到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个答案

白丁雨
2023-03-14

您需要将您的项目作为一个包进行结构化。

通过添加\uuu init\uuu。py文件如此处所述,您指定的是顶级包,因此可以使用以下命令导入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
 类似资料:
  • 这是我的Android项目 我想将自定义包从目录应用程序导入目录示例。伙计们,怎么做???

  • 当尝试编译名为UserO的原始文件时ptions.proto它有一个名为A的导入ccount.proto使用下面的命令 我得到以下错误: PS:用户选项。proto位于目录/home/project\u new1/settings中导入帐户。proto存在于目录/home/project\u new1/account中 原型描述符文件: 用户选项。原型 账户原型

  • 问题内容: 我有这种文件结构(目录和箭头文件之后): 主要: 型号目录: 报告目录: 现在,我想导入,但是我尝试做的错误是没有这样的模块。 我尝试了这个: 然后: 看起来这两个文件夹没有看到对方。从其他目录导入文件的方式是什么?我需要在 init .py文件中指定一些其他导入吗? 问题答案: 您可以在运行时添加到系统路径: 到目前为止,这是最简单的方法。

  • 我正在使用QT,我无法找到如何将文件从一个目录复制到另一个目录?我怎样才能做到这一点?

  • 问题内容: 说我在目录中还有一个文件。如何替换为使用?我在Windows XP上,跨平台的解决方案会很棒,但是Windows是首选。 问题答案: 您可以使用以下 功能: 在其手册页中引用了几个相关的句子: 将文件源的副本复制到dest。 如果目标文件已经存在,它将被覆盖。