【发布时间】:2021-02-24 15:36:45
【问题描述】:
我如何指定 pip 可以在 poetry 的pyproject.tomlpyproject.toml 中使用的相对路径?
poetry 成功安装它们,但是 pip 失败并出现以下错误:
File "/tmp/pip-build-env-ck09aiax/overlay/lib/python3.7/site-packages/poetry/core/packages/directory_dependency.py", line 36, in __init__
raise ValueError("Directory {} does not exist".format(self._path))
ValueError: Directory ../lib_foo does not exist
例子
我有以下存储库结构
.
├── lib_foo
│ ├── lib_foo
│ │ └── __init__.py
│ └── pyproject.toml
└── main_app
├── main_app
│ └── __init__.py
└── pyproject.toml
main_app 依赖于lib_foo,它的依赖如下所示:
./main_app/pyproject.toml
[tool.poetry.dependencies]
python = "^3.7"
lib-foo = { path = "../lib_foo" } # also tried path = "../lib_foo/"
做的时候:
./main_app$ poetry install # runs successfully
./main_app$ python -m pip install ../lib_foo/ # runs successfully
./main_app$ python -m pip install . # fails with the error mentioned above
./main_app$ python -m pip --version
pip 20.1.1 from ./main_app/my_venv/lib/python3.7/site-packages/pip (python 3.7)
我在开发项目时使用poetry,但是在部署它们时我只想使用pip
一个相关的issue
【问题讨论】:
-
据我记忆,这是不支持的。问题是在 Python 发行版(sdist 或 wheel)中编写路径有些不稳定,当它是相对路径时更是如此。我会试着找到一些具体的证据,我想我不久前就看到了。
-
@sinoroc 似乎有一个PR 可以解决这个问题?
-
我认为这无关,我可能错了。
-
我看到你已经提出了这个问题并在这里得到了答案:github.com/pypa/pip/issues/9127 -- 那么你为什么没有在问题中添加这个链接呢?
-
@sinoroc 将编辑
标签: pip python-packaging python-poetry