【旁门python02】如何用setuptools搭建一个python whl包

本文介绍了如何使用setuptools创建Python wheel包,包括pyproject.toml和setup.py的编写,以及打包过程。讲解了wheel包的种类,条件式依赖关系,并提及manylinux在处理平台特定wheel包时的作用。
摘要由CSDN通过智能技术生成

前言

鸽了那么久终于决定把坑填完……本篇打算承接上一篇,讲讲python wheel包的创建。原则上需要涵盖的内容挺多的,但碍于篇幅只能把最相关的部分提炼出来。一般的开发者需要用到这部分内容的其实不多,但谁知道呢——也许哪一天愿意为开源社区提供自己写的程序包时,希望这篇博客能带来一定的指导。


前置准备

python的打包工具有很多,setuptools虽然已不能算是默认,但仍是目前最为流行的一种。首先,得确认自己的系统上有wheelsetuptools两个模块:

pip install wheel setuptools --user
  • setuptools是用来完成打包动作的
  • wheelsetuptools的一个衍生插件,提供一些命令行指令用于和wheel包交互

一、wheel包的种类

  • Universal wheel:带有py2.py3-none-any.whl在名字中的包。对python2和python3、操作系统等均没有要求,兼容性极好。
  • Pure-python wheel:带有py3-none-any.whlpy2-none-any.whl在名字中的包。和universal wheel相比,仅仅在python的版本上有所要求。
  • Platform wheel:对python版本和操作系统等都会有要求。创建这种类型的wheel一般意味着内部使用了一些由静态语言编写的代码(如C++)。这些代码在编译时会对平台有所要求,所以造成wheel包也会有平台依赖。

pip install在执行的时候会去寻找和当前环境兼容的版本,如果未找到兼容的版本,但是找到源发行版的话,会下载源发行版在本地进行编译安装;如果源发行版也找不到,那安装就会报错了。

二、wheel包的打包过程

2.1 pyproject.toml

pyproject.toml是在PEP518中被引入作为注明一个Python项目要用到什么编译工具的。在此之前人们没有办法让程序自动获知一个项目打包成wheel过程中需要的编译工具。除了PEP518之外,PEP517还指明了如何使用编译工具来完成打包编译,进一步实现了整体过程的标准化,统一了不同的编译工具和流程。当然,它们带来的好处还有一些,在这里暂不展开。

对于setuptools用户来说,以下的内容,阐明一下setuptools的版本就够了:

[build-system]
requires = ["setuptools >= 40.6.0", "wheel"]
build-backend = "setuptools.build_meta"
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
好的,下面是使用setuptoolsPython项目打whl文件的步骤: 1. 确认已经安装了setuptools和wheel模块。如果没有安装,可以在命令行中输入以下命令进行安装: ``` pip3 install setuptools wheel ``` 2. 在项目根目录下创建一个名为`setup.py`的文件,内容如下: ``` from setuptools import setup, find_packages setup( name='your-project-name', version='0.1', packages=find_packages(), install_requires=[ 'dependency1', 'dependency2', # ... 其他依赖项 ], classifiers=[ 'Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', ], ) ``` 其中,`name`是你的项目名称,`version`是你的项目版本号,`packages`是你的项目中含的所有Python模块,`install_requires`是你的项目依赖的所有Python,`classifiers`是一些元数据。 3. 在命令行中进入项目根目录,然后使用以下命令构建一个源码分发: ``` python3 setup.py sdist ``` 这个命令会在项目根目录下生成一个`dist`目录,其中一个源码分发。 4. 接下来,使用以下命令构建一个二进制分发: ``` python3 setup.py bdist_wheel ``` 这个命令会在项目根目录下生成一个`dist`目录,其中一个whl文件。 5. 最后,你可以使用以下命令来安装你的项目: ``` pip3 install your-project-name-0.1-py3-none-any.whl ``` 其中,`your-project-name-0.1`是你的项目名称和版本号,`py3-none-any`表示这是一个Pythonwhl文件。 以上就是使用setuptoolsPython项目打whl文件的步骤。希望对你有所帮助。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值