从父目录相对导入

时间:2021-01-20 10:14:22

标签: python python-3.x

我想要如下所示的项目结构: 一些 API 模块,我用它来制作一些工具。

├── api
│   ├── __init__.py
│   ├── some_script.py
├── tools
│   └── tool1.py

api/some_script.py

def func():
    print("Func1")

class some_object():
      ...

api/__init__.py

from .some_script import some_object, func

tool1.py 中的位置

from ..api import func

我想要文件夹中的工具,但我一直收到导入错误。到目前为止,我没有文件夹中的 tool1.py 并且它工作正常(但使用代码 从 api 导入函数)

ImportError: attempted relative import with no known parent package

如何让它以这种方式工作? 谢谢解答

2 个答案:

答案 0 :(得分:0)

我尝试了你的代码并得到了同样的错误,结果你需要使用 sys 帮助导入,这是如何做到的:

import sys 
sys.path.append("..")
from api import some_script

答案 1 :(得分:0)

@basic 披头士 帮我解决了。使用其他一些来源,这个有效:

sys.path.append(os.path.join(os.path.dirname(__file__), ".."))