我们有一个私有的git monorepo,它承载了许多Python包。Poetry是最初为项目选择的依赖项管理工具。无论如何,由于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-1
和lib
因此,问题是:
使用pip
从monorepo安装软件包的正确方法是什么?
让我们考虑一个例子,我们尝试安装^ {< CD3>},其中^ {< CD10>}包含以下行:
...
[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
目前没有回答
相关问题 更多 >
编程相关推荐