首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyproject.toml文件是用来做什么的?

pyproject.toml文件是用来做什么的?
EN

Stack Overflow用户
提问于 2020-07-19 17:51:19
回答 4查看 136.5K关注 0票数 228

背景

我正要尝试从GitHub下载的Python包,发现它没有setup.py,所以我不能用

代码语言:javascript
复制
pip install -e <folder>

相反,包有一个pyproject.toml文件,该文件的条目似乎与setup.py通常具有的非常相似。

我发现的

谷歌带领我进入佩普-518,并在基本原理部分对setup.py进行了一些批评。但是,它并没有清楚地说明应该避免使用setup.py,或者pyproject.toml本身将完全取代setup.py

问题

pyproject.toml是用来取代setup.py的东西吗?或者应该同时附带一个包,一个pyproject.toml和一个setup.py

如何在可编辑状态下安装带有pyproject.toml的项目?

EN

回答 4

Stack Overflow用户

发布于 2020-07-19 18:05:21

是的,pyproject.toml佩普518的指定文件格式,它包含了projects的构建系统需求。

这解决了构建工具依赖鸡和鸡蛋的问题,即pip可以读取pyproject.toml以及setuptoolswheel可能需要的版本。

如果需要setup.py进行可编辑安装,则可以在setup.py中使用shim。

代码语言:javascript
复制
#!/usr/bin/env python

import setuptools

if __name__ == "__main__":
    setuptools.setup()
票数 101
EN

Stack Overflow用户

发布于 2020-12-05 23:01:33

pyproject.tomlsetup.py的新统一Python项目设置文件可编辑安装仍然需要一个setup.pyimport setuptools; setuptools.setup()

要使用pyproject.toml,运行python -m pip install .

然后,如果项目使用的是poetry而不是pip,您可以安装依赖项(到%USERPROFILE%\AppData\Local\pypoetry\Cache\virtualenvs中),如下所示:

代码语言:javascript
复制
poetry install

然后运行像吡喃这样的依赖项。

代码语言:javascript
复制
poetry run pytest tests/

预承诺 (使用.pre-commit-config.yaml):

代码语言:javascript
复制
poetry run pre-commit install
poetry run pre-commit run --all-files
票数 88
EN

Stack Overflow用户

发布于 2021-08-04 20:07:43

只回答这一部分,其他人已经很好地解释了其余部分:

如何在可编辑状态下安装带有pyproject.toml的项目?

变通(工作)

  1. 克隆项目并运行poetry install,首先创建一个正常的安装。
  2. 获取诗歌使用poetry env info -p创建的虚拟环境的路径。它可能会类似于<absolute path of your cloned project/.venv。然后检查它里面的site-packages目录的路径是什么。它取决于您的Python版本,并且将类似于<absolute path of your cloned project/.venv/lib/python3.9/site-packages
  3. 在这个文件中创建一个site-packages。它应该包含一行文本,其中包含要以可编辑模式安装的包的完整路径:
代码语言:javascript
复制
echo "<absolute path of your cloned project>" > "<absolute path of your cloned project/.venv/lib/python3.9/site-packages/package_name.pth"

适当的修正(2021年8月尚未实施)

2021年6月,一个描述pyproject.toml-based构建可编辑安装的-based已经被接受。

poetry的实现是在这个公关中进行的。

因此,我们需要等待它完成,得到合并和一个新的poetry版本发布。

资料来源

除了上面的链接,我的主要来源是"pip安装-e .等效?“-第34期在github.com/python-诗歌/诗歌

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62983756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档