首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从setup.py迁移到pyproject.toml:如何指定包名?

从setup.py迁移到pyproject.toml:如何指定包名?
EN

Stack Overflow用户
提问于 2022-05-23 17:45:10
回答 2查看 3.1K关注 0票数 5

我目前正在尝试将我们的内部项目从setup.py转移到pyproject.toml (佩普-518)。如果可能的话,我不想使用特定于构建后端的配置,即使我确实在[build-system]部分中通过使用require来指定后端。

pyproject.toml文件或多或少是setup.py文件的直接前向翻译,元数据根据佩普-621设置,包括dependencies。我们使用setuptools_scm来确定版本,因此version字段在dynamic部分结束。

我们过去常常在我们的packages文件中将setup参数设置为setup,但是在pyproject.toml中找不到相应的字段,所以我忽略了它。

当使用python3 -m build .构建项目时,我最终得到一个名为UNKNOWN的包,尽管在[project]部分设置了name字段。这似乎在构建过程中很早就中断了:

代码语言:javascript
复制
$ python -m build .
* Creating virtualenv isolated environment...
* Installing packages in isolated environment... (setuptools, setuptools_scm[toml]>=6.2, wheel)
* Getting dependencies for sdist...
running egg_info
writing UNKNOWN.egg-info/PKG-INFO
....

我使用python 3.8.11和以下软件包:

代码语言:javascript
复制
build==0.8.0
distlib==0.3.4
filelock==3.4.1
packaging==21.3
pep517==0.12.0
pip==22.0.4
platformdirs==2.4.0
pyparsing==3.0.9
setuptools==62.1.0
six==1.16.0
tomli==1.2.3
virtualenv==20.14.1
wheel==0.37.1

我的(缩写) pyproject.toml如下所示:

代码语言:javascript
复制
[project]
name = "coolproject"
dependencies = [
   'pyyaml==5.3',
   'anytree==2.8.0',
   'pytest'
]
dynamic = [
   "version"
]

[build-system]
requires = ["setuptools", "wheel", "setuptools_scm[toml]>=6.2"]

[tool.setuptools_scm]

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-26 07:26:48

把@AKX的评论变成一个答案,这样其他人就能更容易地找到它。

问题可能是系统上过时的pip/setuptools。显然,我的系统上的19.3.1版本无法安装能够正确处理PEP621元数据的setuptools版本。

您不能使用pyproject.toml指令从build-system.requires内部要求一个新的pip。

如果无法更新系统pip,则始终可以按每个用户安装:

代码语言:javascript
复制
pip install --user pip

你可以走了。

票数 3
EN

Stack Overflow用户

发布于 2022-08-25 18:30:44

在Debian/Ubuntu上,如果安装了较旧的setuptools系统版本,就可以创建“未知”包。

解决办法:

代码语言:javascript
复制
sudo apt purge python3-setuptools

https://github.com/pypa/setuptools/issues/3269

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

https://stackoverflow.com/questions/72352801

复制
相关文章

相似问题

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