【问题标题】:Import function from sibling directory (__init__ files does not work)从同级目录导入功能(__init__ 文件不起作用)
【发布时间】:2021-02-20 12:25:09
【问题描述】:

我和Import from sibling directory 有同样的问题,但是拥有__init__ 文件的想法并没有解决它。

到目前为止,我有以下结构:

main/
│   └── __init__.py
├── DirA/
│   ├── __init__.py
│   ├── func_A.py
├── DirB/
│   ├── __init__.py
│   ├── func_B.py

(所有__init__都是空的)

我只想在func_B 中使用func_A - 请参阅下文,了解在func_B 中写入行时的不同错误:

from ..DirA import func_A #ImportError: attempted relative import with no known parent package
from main.DirA import func_A #ModuleNotFoundError: No module named 'main'
from .DirA import func_A #ImportError: attempted relative import with no known parent package
from DirA import func_A #ModuleNotFoundError: No module named 'func_A'

我尝试在dirBmain 中运行func_B,但它不起作用。

【问题讨论】:

  • 您必须将主目录的父目录添加到您的 PYTHONPATH(或编写 setup.py 并安装您的包)。
  • 不需要将其添加到 PYTHONPATH IMO
  • 不是,你可以写一个setup.py文件,安装你的包。

标签: python python-import


【解决方案1】:

from DirA import func_A尝试

【讨论】:

  • 也试过了 - 只是忘了将它添加到列表中(现在完成)
  • 您要导入的文件在哪里?
  • 应该在上图中解释
  • 我的意思是您要导入的文件,就像您有一个文件所在的位置,并且您正在尝试导入该文件中的函数。它位于哪里?我在上图中没有看到
猜你喜欢
  • 2021-09-25
  • 2018-10-09
  • 2022-08-16
  • 1970-01-01
  • 2020-09-10
  • 2011-05-31
  • 2020-08-12
  • 1970-01-01
相关资源
最近更新 更多