Я настраиваю Python monorepo с использованием УФ для управления зависимостями. Когда я запускаю UV Sync в корневом каталоге, установлены только зависимости корневого пакета - ни одна из зависимостей подпакетов не установлена. Проект имеет несколько компонентов: < /p>
- Основная библиотека ()
Код: Выделить всё
engine-core
- Оркестратор для трубопроводов данных ()
Код: Выделить всё
orchestrator
- Проект DBT для моделирования данных ()
Код: Выделить всё
dbt_forge
Вот (упрощенная) структура проекта:
Код: Выделить всё
custom-data-forge/
├── pyproject.toml
└── packages/
├── engine-core/ # Python library with importable modules
│ └── pyproject.toml
├── orchestrator/ # Airflow DAGs and pipeline code
│ └── pyproject.toml
└── modeling/
└── dbt_forge/ # dbt models and ClickHouse transformations
└── pyproject.toml
root pyproject.toml :
Код: Выделить всё
[project]
name = "custom-data-forge"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = ["pandas", "sqlalchemy", "tabulate"]
[tool.uv.workspace]
members = [
"packages/engine-core",
"packages/orchestrator",
"packages/modeling/dbt_forge",
]
Код: Выделить всё
# packages/engine-core/pyproject.toml
[project]
name = "engine-core"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = ["dbt-core", "dbt-clickhouse"]
# packages/orchestrator/pyproject.toml
[project]
name = "orchestrator"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = ["engine-core", "apache-airflow"]
# packages/modeling/dbt_forge/pyproject.toml
[project]
name = "dbt_forge"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = ["dbt-core", "dbt-clickhouse"]
< /code>
проблема < /h2>
Когда я запускаю UV Sync < /code> в корневом каталоге: < /p>
[list]
[*] Только зависимости корневого пакета (pandas
Код: Выделить всё
dbt-core
[/list]
Что я попробовал
- Добавлено [tool.uv] package = true to subpackages 'pyproject.toml code> code> filified
< /ul>
Подробнее здесь: https://stackoverflow.com/questions/796 ... n-monorepo