使用 Pip 下载 pyproject.toml 中声明的依赖项

She*_*ren 68 python pip python-poetry pyproject.toml

我有一个不包含requirements.txt. 但它有一个pyproject.toml文件。

如何下载此 Python 项目所需的包(依赖项)并使用pyproject.tomlPip 包管理器(而不是构建工具 Poetry)声明。

因此pip download -r requirements.txt,而不是类似的东西pip download -r pyproject.toml

Bel*_*sim 52

以下是 .toml 文件的示例:

[build-system]
requires = [
    "flit_core >=3.2,<4",
]
build-backend = "flit_core.buildapi"

[project]
name = "aedttest"
authors = [
    {name = "Maksim Beliaev", email = "beliaev.m.s@gmail.com"},
    {name = "Bo Yang", email = "boy@kth.se"},
]
readme = "README.md"
requires-python = ">=3.7"
classifiers = ["License :: OSI Approved :: MIT License"]
dynamic = ["version", "description"]

dependencies = [
    "pyaedt==0.4.7",
    "Django==3.2.8",
]

[project.optional-dependencies]
test = [
    "black==21.9b0",
    "pre-commit==2.15.0",
    "mypy==0.910",
    "pytest==6.2.5",
    "pytest-cov==3.0.0",
]

deploy = [
    "flit==3.4.0",
]
Run Code Online (Sandbox Code Playgroud)

要安装核心依赖项,请运行:

pip install .
Run Code Online (Sandbox Code Playgroud)

如果您需要测试(开发)环境(我们使用test它是因为它是在 .toml 文件中定义的名称,您可以使用任何环境):

pip install .[test]
Run Code Online (Sandbox Code Playgroud)

从 Wheel 安装:

pip install C:\git\aedt-testing\dist\aedttest-0.0.1-py3-none-any.whl[test]
Run Code Online (Sandbox Code Playgroud)

  • `pip install .` 不仅仅下载依赖项,它还“安装”它们以及实际项目本身。 (27认同)
  • 如果您运行 Zsh,请运行“pip install -e '.[tests]'”,如果您收到“zsh: no matches found: .[tests]”错误。 (7认同)
  • 这个答案对我来说当然有帮助 - 我在其他任何地方都找不到指定项目下的“依赖项”列表,而这正是 pip 安装运行时所需的其他包所需的。 (4认同)

小智 11

pip 支持原生安装 pyproject.toml 依赖项

从版本 10.0 开始,pip 支持项目使用 pyproject.toml 文件声明安装时所需的依赖项,其形式如 PEP 518 中所述。构建项目时,pip 将在本地安装所需的依赖项,并将它们提供给构建过程。此外,从版本 19.0 开始,pip 支持指定其在 pyproject.toml 中使用的构建后端的项目,其形式如 PEP 517 中所述。

从项目的根目录,使用 pip 的本地项目安装:

python -m pip install .
Run Code Online (Sandbox Code Playgroud)

  • 该命令不仅下载依赖项,还“安装”它们以及实际项目本身。 (31认同)
  • 有没有办法指向本地项目之外的某些 pyproject.toml 文件? (3认同)

fin*_*mer 1

您可以将依赖项导出到 arequirements.txtpip download随后使用:

poetry export -f requirements.txt > requirements.txt
pip download -r  requirements.txt
Run Code Online (Sandbox Code Playgroud)

  • 问题是关于直接使用 pyproject.toml 文件,而不是生成requirements.txt 文件。 (12认同)