【问题标题】:how to share dev-dependencies between Python projects within the same monorepo?如何在同一个 monorepo 中的 Python 项目之间共享开发依赖项?
【发布时间】:2021-08-05 03:34:02
【问题描述】:

我有两个这样的monorepos:

.
├── monorepo1/
│   ├── apps/
│   │   ├── app1/
│   │   └── app2/
│   └── libs/
│       ├── lib1/
│       └── lib2/
└── monorepo2/
    ├── apps/
    │   ├── app3/
    │   └── app4/
    └── libs/
        ├── lib3/
        └── lib4/

每个monorepo 都包含appslibs,其中包含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项目?

【问题讨论】:

    标签: python monorepo python-poetry


    【解决方案1】:

    你不能这样做。诗歌的哲学是将每个项目分开。但是有一些关于如何支持子包的想法。见https://github.com/python-poetry/poetry/issues/2270

    【讨论】:

    • 这是否意味着我需要使用多个子项目多次安装相同的开发依赖项?是否可以对开发依赖项使用符号链接来消除不必要的重复安装?
    猜你喜欢
    • 2016-07-26
    • 2020-02-01
    • 2019-07-14
    • 1970-01-01
    • 2018-12-31
    • 2019-07-23
    • 2012-03-24
    • 2018-03-15
    • 2015-10-28
    相关资源
    最近更新 更多