gpt4 book ai didi

python - 如何从不同的文件夹导入模块?

转载 作者:太空狗 更新时间:2023-10-30 00:16:03 26 4
gpt4 key购买 nike

我有一个项目,我想这样构建:

myproject
├── api
│ ├── __init__.py
│ └── api.py
├── backend
│ ├── __init__.py
│ └── backend.py
├── models
│ ├── __init__.py
│ └── some_model.py
└── __init__.py

现在,我想在 api.pybackend.py 中导入模块 some_model.py。我该如何正确执行此操作?

我试过:

from models import some_model

但是失败并显示 ModuleNotFoundError: No module named 'models'

我也试过:

from ..models import some_model

这给了我 ValueError: attempted relative import beyond top-level package

我在这里做错了什么?如何从不是子目录的不同目录导入文件?

最佳答案

首先,这个导入语句:

from models import some_model

应该命名空间:

# in myproject/backend/backend.py or myproject/api/api.py
from myproject.models import some_model

然后你需要得到包含myproject的目录,我们称这个/path/to/parent,进入sys.path 列表。您可以通过设置环境变量临时执行此操作:

export PYTHONPATH=/path/to/parent

或者,您最好编写一个 setup.py 文件并安装您的包。关注PyPA包装指南。在您编写完 setup.py 文件后,从同一目录中执行此命令以在 sys.path 中设置正确的条目:

pip install --editable .

关于python - 如何从不同的文件夹导入模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49039436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com