Как импортировать файл из папки, находящейся внутри другой папки (родительской папки)?

Как импортировать модуль foo.py в file.py из папки main, если структура проекта следующая?

```
├── app/
│ ├── __init__.py
│ ├── main/
│ │ │ ├── __init__.py
│ │ │ ├── file.py
│ ├── utils/
│ │ │ ├── __init__.py
│ │ │ ├── foo.py
```

Я пробовал использовать следующий код, но он выдает ошибку "ImportError: attempted relative import with no known parent package":

```python
from ..utils import foo
```
  • 17 сентября 2023 г. 12:36
Ответы на вопрос 2
Ошибка "ImportError: attempted relative import with no known parent package" возникает из-за отсутствия родительского пакета в проекте. Чтобы решить эту проблему, можно использовать абсолютный импорт или добавить родительскую папку в путь для импорта.

Вариант 1: Абсолютный импорт
```python
from app.utils import foo
```

Вариант 2: Добавление родительской папки в путь для импорта
1. В файле file.py добавьте следующий код в начало:
```python
import sys
from os.path import abspath, dirname
sys.path.insert(0, abspath(dirname(dirname(__file__))))
```
2. Теперь можно использовать относительный импорт:
```python
from utils import foo
```

Обратите внимание, что эти варианты предполагают, что вы запускаете файл file.py из корневой папки проекта (например, из папки app/).
from utils import foo
Похожие вопросы