Python中的打包分发工具setuptools
一、setuptools工具简介
setuptools是Python distutils增强版的集合。
它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。
setuptools构建出来的wheel(.whl)可供其他人pip install和import。
二、构建方法
1、文件结构
./BCI
├── bci
│ ├── ssvep.py
│ └── __init__.py
├── LICENSE
├── Readme.md
├── setup.cfg
└── setup.py
2、文件内容
# setup.py;会自动读取setup.cfg中的设置
import setuptools
setuptools.setup() # 也可有参调用,则会覆盖.cfg的对应条目
# setup.cfg;所有条目见 https://setuptools.readthedocs.io/en/latest/userguide/declarative_config.html
[metadata]
name = bci
version = 1.0
author = xxx
long_description = file: Readme.md # 从文件中读取
license = MIT
url = https://github.com/user/repo
classifiers = # PyPI的分类,类似于标签,所有条目见 https://pypi.org/pypi?%3Aaction=list_classifiers
Development Status :: 3 - Alpha
Programming Language :: Python :: 3
[options]
packages = find: # 自动搜索存在__init__.py的文件夹作为包
install_requires = # 依赖,pip安装时靠的就是这个而不是requirements.txt
requests
# ssvep.py
def ssvep():
print('ssvep')
# __init__.py
from .ssvep import ssvep
3、安装
运行setup.py文件即可。
三、制作wheel安装包
wheel是python新的发行标准,旨在替代传统的egg,pip >=1.4的版本均支持wheel, 使用wheel作为python库的发行文件,有如下好处:
- 纯Python和本机C扩展软件包的安装速度更快
- C扩展的安装不需要在Linux,Windows或macOS上进行编译
本质上,wheel是一个zip压缩文件,将.whl扩展名替换为.zip,就可以使用zip应用程序打开它。
pip在安装wheel文件时,其过程也正是对它进行解压,然后复制到site-packges目录下。
使用方法:
在包的根目录下执行:pip wheel .
之后就可以将生成的whl文件发布到Pypi平台。