如何在同一个 monorepo 中的 Python 项目之间共享开发依赖项?
Posted
技术标签:
【中文标题】如何在同一个 monorepo 中的 Python 项目之间共享开发依赖项?【英文标题】:how to share dev-dependencies between Python projects within the same monorepo? 【发布时间】:2021-08-05 03:34:02 【问题描述】:我有两个这样的monorepos:
.
├── monorepo1/
│ ├── apps/
│ │ ├── app1/
│ │ └── app2/
│ └── libs/
│ ├── lib1/
│ └── lib2/
└── monorepo2/
├── apps/
│ ├── app3/
│ └── app4/
└── libs/
├── lib3/
└── lib4/
每个monorepo 都包含apps
和libs
,其中包含python 包。
我想为同一个 monorepo 共享 dev-dependencies,但我没有找到办法。我正在使用 Poetry 来管理 Python 包依赖项。
使用poetry add -D
只会在该 Python 包中安装 dev-dependencies(例如 app1
)。
将包安装为全局包会影响其他monorepos。
如何在 monorepo1 中一次性安装开发依赖项?
此外,我正在使用 VSCode,并为每个 python 项目设置 settings.json
以使用其自己的 python 环境。例如:
// monorepo1/apps/app1/.vscode/settings.json
"python.pythonPath": ".venv/bin/python",
我怎样才能找到monorepo的dev-dependencies(例如pytest
/pylint
/black
/ipykernel
...)而不安装那些dev-dependencies同一个monorepo中的每个python项目?
【问题讨论】:
【参考方案1】:你不能这样做。诗歌的哲学是将每个项目分开。但是有一些关于如何支持子包的想法。见https://github.com/python-poetry/poetry/issues/2270
【讨论】:
这是否意味着我需要使用多个子项目多次安装相同的开发依赖项?是否可以对开发依赖项使用符号链接来消除不必要的重复安装?以上是关于如何在同一个 monorepo 中的 Python 项目之间共享开发依赖项?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不发布的情况下在 lerna monorepo 中构建 docker 镜像
尝试在 monorepo 项目中配置 Babel - 当前未启用“classProperties”。如何在 monorepo 项目中设置 Babel?