问题标签 [pyproject.toml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
520 浏览

python - 使用 `--global-option` 为 python 包指定设置时间依赖项

我正在尝试打包一个具有设置时(以及运行时)依赖项的 python 库:它import是模块,以便模块可以通知设置过程一些提供的 C 头文件的位置:

但是,其中一个依赖项 ( pybedtools) 需要使用特定的--global-optionpip 选项安装(请参阅文章末尾未提供该选项时会发生什么)。

如果我理解正确,那么当前使用之前自动提供一些依赖项的最新方法是在文件的部分中setup.py指出它们。[build-system]pyproject.toml

我尝试了以下方法pyproject.toml

(顺便说一句,我花了很长时间才弄清楚如何指定build-backend,文档不容易被发现。)

但是,这会产生以下错误pip install

如何正确指定依赖项的选项

如果我只是指定包及其 URL ( "pybedtools @ git+https://github.com/blaiseli/pybedtools.git@fix_missing_headers),安装将失败,如下所示:

在尝试解决上述错误时,我发现了--global-optionpip 选项。我可以手动运行pip install --global-option="cythonize" git+https://github.com/blaiseli/pybedtools.git@fix_missing_headers,并且安装工作,前提是已经安装了该软件包的依赖项,否则由于无法识别的"cythonize"选项(这是另一个问题......),它们的安装会失败。

请注意,仅在“从源代码”安装时才需要此选项(例如,从 github 上的 fork 安装时,就像我在这里的情况一样)。

0 投票
1 回答
6301 浏览

python - 如何基于pyproject.toml构建python项目

我想了解 Python 构建系统和需求管理的当前状态。

想象一下,我检查了一些使用诗歌(或 pipenv)的项目的来源。并且该项目具有pyproject.toml指定构建系统的文件。当然,我可以查看 pyproject,看到这个正在使用 Poetry,安装诗歌并运行poetry install,但我想避免它。

问题:是否有构建系统无关的方式来构建 Python 项目?

通过“构建”,我的意思是安装项目运行所需的所有必要条件。

requirements.txt我会通过运行来实现这一点pip install -r requirements.txt

0 投票
3 回答
3682 浏览

python - 如何在不使用 setup.py 文件的情况下构建源代码分发?

具有以下封装结构

的内容setup.py

的内容setup.cfg

my_package我可以为此构建轮子或源代码分发

但是根据setuptools 的维护者的说法,声明式构建配置是理想的,使用命令式构建将是一种代码味道。所以我们替换setup.pypyproject.toml

的内容pyproject.toml

你仍然可以像以前一样建造一个轮子,它可以工作。但是 sdist 不起作用:

那么您应该如何使用 setuptools实际构建 .tar.gz 文件?创建 sdist 的面向用户的工具是什么?我不想更改构建后端。看起来其他打包工具都编写了自己的构建入口点,但我认为在元数据中定义声明式构建系统的全部目的是让您不必亲自动手构建系统,学习每个需要调用不同的打包工具,或者必须进入解释器并手动调用 Python API。但是构建系统要求的 PEP 现在已经超过 2 年了。我在这里遗漏了一些明显的东西吗?

如何在不使用setup.py文件的情况下构建源代码分发?

0 投票
1 回答
856 浏览

python - 将 pyproject.toml 添加到项目中会使 pip install 失败

pyproject.toml用来配置black. 但是,当添加此文件时,pip3 install -e . --user失败并出现以下错误:

为什么会发生此错误,我该如何解决?

0 投票
4 回答
5360 浏览

python - 忽略黑色格式化程序的 pyproject.toml 文件中的 Django 迁移

我刚刚为我的 Django 存储库设置了BlackPre-Commit 。

我使用了我遵循的教程中的 Black 的默认配置,它运行良好,但我无法从中排除我的迁移文件。

这是我一直使用的默认配置:

pyproject.toml

我使用Regex101.com来确保^.*\b(migrations)\b.*$匹配apps/examples/migrations/test.py.

当我将该正则表达式行添加到我的配置文件并运行pre-commit run --all-files时,它会忽略该.git文件夹,但仍会格式化迁移文件。

0 投票
2 回答
5621 浏览

python - 使用 project.toml 配置 isort 和 autoflake

我有一系列在本地和 Jenkins 上运行的工具来检查和格式化我的 Python 代码:

  • 自动剥落
  • 异类
  • 黑色的

我使用pyproject.tomlfile 来配置 black、isort with.isort.cfg和 autoflake 命令行参数,因为我还没有找到任何支持使用配置文件来配置它。

有没有办法配置 isort 和 autoflake pyproject.toml

我想只用一个文件配置所有工具。

0 投票
1 回答
2525 浏览

python - 如何从 setup.py 中读取来自 pyproject.toml 的项目依赖项,以避免在两个文件中重复信息?

我们正在升级以使用BeeWare 的 Briefcase 0.3.1进行打包,它使用pyproject.toml而不是setup.py指定如何打包,包括要包含在包中的依赖项。

pyproject.toml这是for公文包的最小示例:

我们想从 访问需求列表setup.py,因此我们不必在两个文件中复制它,并使它们保持同步。我们还没有准备好放弃setuptools,这只是为了打包。另一种方法当然是让setup.py自动生成pyproject.toml文件,但这似乎有点倒退到PEP 518的意图。

0 投票
3 回答
3035 浏览

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

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

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

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

0 投票
1 回答
4378 浏览

python - Pytest cov 不读取 pyproject.toml

Pytest cov 没有从 pyproject.toml 文件中读取其设置。我正在使用 nox,所以我运行测试:

即使没有nox,我似乎也有同样的问题。

事实上,在运行之后poetry install

  • poetry run pytest --cov=src通过测试
  • poetry run pytest --cov没有通过测试

特别是,当测试失败时,我有以下输出(输出被削减到最重要的东西):

此处有可重现错误的代码。要运行它,您需要安装诗歌安装 nox

0 投票
0 回答
555 浏览

python - “需要”(pyproject.toml),本地包处于可编辑模式

我正在使用一个pyproject.toml文件来允许我在构建过程中使用第三方包。(例如,我想使用中的tomlsetup.up。)当我将本地包添加到“requires”(以可编辑模式安装)时,构建看不到包。pyproject.toml除了将本地包显式部署到 pypi 之外,还有其他方法可以将本地包包含在其中吗?

这是我的pyproject.toml文件目前的样子: