从Monorepo安装Python软件包

问题描述

我们有一个私人的git monorepo,它托管了许多Python软件包。诗歌是最初为该项目选择的依赖性管理工具。无论如何,由于this Poetry issue,涉及创建新的setup.py文件解决方案将不被接受。

结构的简化版本:

git-monorepo
├── pkg-1
│   ├── pkg
│   │   └── mod1.py
│   └── pyproject.toml
├── pkg-2
│   ├── pkg
│   │   └── mod2.py
│   └── pyproject.toml
└── lib
    ├── pkg
    │   └── lib.py
    └── pyproject.toml

库分发软件包lib与任何其他软件包无关。但是,pkg-1取决于lib,而pkg-2取决于pkg-1lib

所以,问题是:

如何使用pip从此monorepo安装软件包?

让我们以尝试安装pkg-1的示例为例,其中pkg-1/pyproject.toml包含以下几行:

...

[tool.poetry.dependencies]
lib = {path = "../lib/"}

...

运行pip的结果,如VCS support documentation所述:

$ pip install -e git+https://gitlab.com/my-account/git-monorepo#"egg=pkg-1&subdirectory=pkg-1"

Traceback (most recent call last):
  File "/home/hblanco/.local/lib/python3.8/site-packages/pip/_vendor/pkg_resources/__init__.py",line 3101,in __init__
    super(Requirement,self).__init__(requirement_string)
  File "/home/hblanco/.local/lib/python3.8/site-packages/pip/_vendor/packaging/requirements.py",line 115,in __init__
    raise InvalidRequirement("Invalid URL: {0}".format(req.url))
pip._vendor.packaging.requirements.InvalidRequirement: Invalid URL: ../lib

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)