python - 如何使用 pyproject.toml 在可编辑模式下使用 pip 安装包?

标签 python pip setuptools python-poetry pyproject.toml

仅通过 pyproject.toml 指定项目时(即没有 setup.{py,cfg} 文件),如何通过 pip 以可编辑模式安装它(即 python -m pip install -e . )?
我都试过了 setuptoolspoetry对于构建系统,但两者都不起作用:

[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
对于两个构建系统,我都收到相同的错误:
ERROR: Project file:///tmp/demo has a 'pyproject.toml' and its build backend is missing the 'build_editable' hook. Since it does not have a 'setup.py' nor a 'setup.cfg', it cannot be installed in editable mode. Consider using a build backend that supports PEP 660.
我在 conda 中使用它环境,以下是我的版本setuptoolspip :
$ conda list | grep setuptools
setuptools                58.3.0                   pypi_0    pypi
$ python -m pip --version
pip 21.3.1

最佳答案

PEP 660 - Editable installs for pyproject.toml based builds定义如何构建仅使用 pyproject.toml 的项目.构建工具需要实现 PEP 660 才能使可编辑安装工作。

  • Pip 从 version 21.3 开始实现 PEP 660 .
  • version 3.4 起,Flit 实现 PEP 660
  • 诗歌has an implementation merged but it is not yet released截至 2021 年 10 月。
  • 关于python - 如何使用 pyproject.toml 在可编辑模式下使用 pip 安装包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69711606/

    相关文章:

    python - 如何避免在 python 中编写两个重复函数 f(*list) 和 f(list=[])

    python - 将 numpy 数组列表合并到一个数组中(快速)

    python - Pyautogui 屏幕截图函数返回 AttributeError 'module' 对象没有属性

    python - 蓝色混合 : How to upgrade pip?

    python - Pip 1.5 和 setup.py 中设置的 git 依赖项不能一起工作

    python - Git 和打包 : common pattern to keep packaging-files out of the way?

    python - 如何验证 Python 脚本是纯数学函数?

    python - pip 安装失败,显示 "connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)"

    python - setuptools和pip的依赖解析的区别

    python - pip 是否处理来自 setuptools/distribute 来源的 extras_requires?