在 python3 中,超出顶级包的导入失败



我需要一些帮助。我已经被困了一段时间了。我不知道该怎么做以及该怎么做。

我有一个具有以下结构的目录"文件夹"。

.
├── folder1
│   ├── folder3
│   │   ├── a.py
│   │   └── __init__.py
│   └── __init__.py
├── folder2
│   ├── b.py
│   └── __init__.py
└── __init__.py

我基本上想做的是将"folder2/b.py">python文件中的一个函数导入到"folder1/folder3/a.py">中。我想从"文件夹1/文件夹3/">目录中运行"a.py"文件。

让我用一个例子来说明这一点。假设我在"b.py"中有一个函数"hello"。

def hello():
print("Hello world!")

我还有另一个像这样的文件"a.py"。

from b import hello
def hello1():
print("Hello World!!")

我想导航到"文件夹3"目录。

光盘文件夹1/文件夹3

并按如下方式运行 python 文件 'a.py'。

蟒蛇 a.py

这样做会给我以下错误。

值错误:尝试在顶级包之外进行相对导入

我用谷歌搜索了一段时间,并尝试使用这些资源解决这个问题(从相对路径导入模块,即使使用 init 也不起作用相对路径.py,即使使用init.py,如何修复"尝试在非包中相对导入"(。

到目前为止,唯一有效的方法是在">a.py">中使用"sys.append">,如下所示。但是,我读到这种用法非常不专业,非常不推荐。

import sys
sys.path.append("D:/folder")
from folder2 import b

如果您以前处理过此类设置/问题,请帮助我。谢谢!

尝试将根文件夹添加到 python 路径中。

相关内容

  • 没有找到相关文章

最新更新