当前位置: 首页 > news >正文

高大上的企业网站欣赏wordpress 小米商城主题

高大上的企业网站欣赏,wordpress 小米商城主题,工业和信息化部发短信提醒,短视频代运营方案模板历史背景 PEP 517 和 PEP 518 是 pyproject.toml 诞生的关键推动力: PEP 518 (2016):提出了 pyproject.toml 文件格式,用于指定构建系统要求PEP 517 (2017):定义了构建前端和后端的接口标准,使构建过程标准化传统问题&…

历史背景

PEP 517 和 PEP 518 是 pyproject.toml 诞生的关键推动力:

  1. PEP 518 (2016):提出了 pyproject.toml 文件格式,用于指定构建系统要求
  2. PEP 517 (2017):定义了构建前端和后端的接口标准,使构建过程标准化
  3. 传统问题:之前依赖 setup.py 和 setuptools,缺乏标准化,构建环境不一致

设计原理

  1. 声明式配置:使用 TOML 格式,更易于机器解析和人类阅读
  2. 构建系统隔离:明确指定构建依赖,避免环境污染
  3. 可扩展性:支持多种构建后端(setuptools, poetry, flit, hatch等)
  4. 元数据统一:包含项目元数据、构建配置、工具配置等

setup.py vs pyproject.toml 调用方法差异

setup.py(传统方式)

# setup.py
from setuptools import setup, find_packagessetup(name="my-package",version="1.0.0",packages=find_packages(),install_requires=["requests>=2.25.0","numpy>=1.19.0"],extras_require={"dev": ["pytest", "black"],"docs": ["sphinx"]},entry_points={"console_scripts": ["my-cli=my_package.cli:main"]}
)

构建命令

# 源码安装
python setup.py install# 开发模式
python setup.py develop# 构建分发包
python setup.py sdist bdist_wheel

pyproject.toml(现代方式)

# pyproject.toml
[build-system]
requires = ["setuptools>=61.0.0", "wheel"]
build-backend = "setuptools.build_meta"[project]
name = "my-package"
version = "1.0.0"
dependencies = ["requests>=2.25.0","numpy>=1.19.0"
][project.optional-dependencies]
dev = ["pytest", "black"]
docs = ["sphinx"][project.scripts]
my-cli = "my_package.cli:main"[tool.setuptools]
packages = {find = {}}

构建命令

# 使用 PEP 517 兼容工具构建
pip install -e .  # 开发模式
pip install .     # 安装
python -m build   # 构建分发包# 或者使用特定后端
python -m setuptools.build_meta

关键差异对比

特性setup.pypyproject.toml
格式Python 代码TOML 声明式配置
构建依赖隐式依赖 setuptools显式声明在 [build-system]
环境隔离差,依赖全局环境好,明确构建环境
可重现性
安全性执行任意代码只读配置
元数据代码中定义声明式配置
扩展性有限支持多种后端

RPM 包管理版本支持情况

RPM 版本支持时间线

RPM 版本发布时间pyproject.toml 支持关键特性
RPM 4.112015❌ 不支持传统 setup.py only
RPM 4.122017⚠️ 有限支持初步 PEP 517 实验
RPM 4.132018⚠️ 基本支持支持 %pyproject_buildrequires
RPM 4.142019✅ 基本完整支持 %pyproject_wheel
RPM 4.152020✅ 完整支持完整 PEP 517/518 支持
RPM 4.16+2021+✅ 成熟支持优化构建流程

不同 RPM 版本的 spec 文件写法

RPM 4.11-4.12(传统方式)
%build
python setup.py build%install
python setup.py install --root=%{buildroot}
RPM 4.13-4.14(过渡期)
%build
# 手动处理 pyproject.toml
python -m pip wheel --no-deps --no-build-isolation -w dist .%install
python -m pip install --no-deps --no-index --find-links=dist \--prefix=%{buildroot}%{_prefix} .
RPM 4.15+(现代方式)
%build
%pyproject_wheel%install
%pyproject_install

针对低版本 RPM 4.14 的解决方案

# 对于 RPM 4.14,需要手动实现 PEP 517 构建
%build
export PIP_NO_BUILD_ISOLATION=0
export PYTHONPATH=%{_builddir}/%{name}-%{version}# 手动构建 wheel
python -m pip wheel --no-deps --no-build-isolation --wheel-dir=dist .%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{python3_sitearch}# 手动安装 wheel
WHEEL_FILE=$(ls dist/*.whl | head -1)
python -m pip install --no-index --no-deps --ignore-installed \--target=%{buildroot}%{python3_sitearch} \--no-build-isolation \${WHEEL_FILE}

构建后端支持矩阵

构建后端RPM 4.14 支持RPM 4.15+ 支持说明
setuptools✅ 通过 pip wheel✅ 原生支持最常用
poetry⚠️ 需要 poetry-core✅ 完整支持需要额外依赖
flit⚠️ 需要手动处理✅ 完整支持简单项目
hatch⚠️ 有限支持✅ 完整支持新兴工具
pdm❌ 不支持⚠️ 有限支持较新工具

兼容性建议

  1. 对于低版本 RPM:使用 pip wheel 手动构建
  2. 检查构建后端:确保构建依赖在 RPM 环境中可用
  3. 测试验证:在不同 RPM 版本上测试构建过程
  4. 回退方案:准备 setup.py 作为备选(如果需要支持很旧的系统)

现状总结

  • RPM 4.15+:推荐使用 %pyproject_wheel%pyproject_install
  • RPM 4.14:需要手动处理,但可以正常工作
  • RPM 4.13 及以下:建议升级或使用传统 setup.py 方式

现在大多数现代 Linux 发行版(RHEL 8+、Fedora、openEuler 等)都使用 RPM 4.14+,可以较好地支持 pyproject.toml 构建。

http://www.dtcms.com/a/425131.html

相关文章:

  • 怎么在互联网做网站网站推广优化流程
  • 白酒网站的建设久久建筑网碗扣式钢管脚手架安全技术规范
  • seo 网站制作住建局网站官网
  • 个人 邮箱 含网站 域名管理系统网页界面设计
  • 网站建设产业pest分析百度联盟
  • 网站建设的目标的意思销售管理软件crm
  • 网站建设用什么教材郑州网站开发
  • 如何建设网站赚钱搜索引擎入口yandex
  • 河北网站建设模板网站优化与SEO区别
  • 静态网站托管平台做logo网站
  • 深圳一定火网站建设哪些网站可以做任务挣钱
  • 网站 建设 申请报告成都包装设计公司哪家好
  • 成都网站建设与网站推广培训福州公司网站建设一定要用主流程序php语言
  • 襄阳专业网站建设如何自己做直播网站
  • three.js做的酷炫网站抖音代运营有什么内容
  • 国外展览设计网站甘肃省建设稽查执法局网站
  • 北京 网站 优化网站设计合同
  • 做网站有什么注意事项抖音广告投放 网页制作教程
  • 专业做网站的人网站建设一定要备案吗
  • 外贸公司网站改版思路做违法网站
  • 衡水需要做网站的公司wordpress的模板文件下载
  • 网站建设哪家合适智慧旅游平台建设方案
  • 建设部高级职称查询官方网站如何利用js来做网站表单
  • 四川整站优化专业的机构足球网页制作模板
  • 做网站什么字体比较好看公司网站成本
  • 做外贸网站怎么访问外国网站部门网站建设目的
  • wordpress博客网站wordpress+防爬虫
  • 如何用模板做公司网站杭州翰臣科技有限公司
  • 开发区网站建设公司建设网站广告语
  • 网站开发需要多少费用做放单主持的网站