Локальный пакет не распознается даже с помощью __init__.py ⇐ Python

Программы на Python
Anonymous
Локальный пакет не распознается даже с помощью __init__.py

Сообщение Anonymous »

Исходный вопрос
Текущая настройка проекта

Код: Выделить всё

project/
├─ ams/
│  ├─ __init__.py
│  ├─ common/
│  │  ├─ dataclasses.py
│  │  ├─ __init__.py
├─ entry_point/
│  ├─ bar_api/
│  │  ├─ swagger/
│  │  │  ├─ main.yaml
│  │  ├─ __init__.py
│  ├─ run.py
│  ├─ __init__.py
с run.py, имеющим строку из ams.common.dataclasses import Foo, которая выдает мне ошибку ImportError при запуске run.py как из корня проекта через python enter_point/run.py, так и через python run.py после перемещения в точку входа.
Как как видите, у меня есть __init__.py буквально везде, и проект, похоже, работает с текущей настройкой другого разработчика (я просто пытаюсь развернуть его локально для тестирования).Я видел предложения добавить некоторые варианты пути к корню проекта в переменные env PYTHONHOME или PYTHONPATH через сценарий активации env, но попытка сделать это привела меня к ModuleNotFoundError: Нет модуля с именем 'encodings' и обратная трассировка, указывающая на то, что Python ищет stdlib не в том каталоге. Поиск в Google показал, что ошибка приводит к обсуждению на Github, в котором предлагается, чтобы изменение любой из этих переменных было признаком того, что вы делаете что-то неправильно, и этого делать не следует.
Что мне делать на этом этапе? ?
Обновление 1
Перемещение run.py в root и запуск его оттуда привело к ошибке «файл не найден»: FileNotFoundError : [Errno 2] Нет такого файла или каталога: 'bar_api/swagger/main.yaml', который я добавил в обновленную структуру проекта. Я предполагаю, что на этот раз рабочим каталогом должна быть точка входа, поэтому сейчас я сильно склоняюсь к добавлению каждой отдельной папки в каталоге проекта в PYTHONPATH.

Подробнее здесь: https://stackoverflow.com/questions/790 ... th-init-py

Вернуться в «Python»