Python中的打包分发工具setuptools


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库的发行文件,有如下好处:

  1. 纯Python和本机C扩展软件包的安装速度更快
  2. C扩展的安装不需要在Linux,Windows或macOS上进行编译

本质上,wheel是一个zip压缩文件,将.whl扩展名替换为.zip,就可以使用zip应用程序打开它。
pip在安装wheel文件时,其过程也正是对它进行解压,然后复制到site-packges目录下。

使用方法:

在包的根目录下执行:
pip wheel .

之后就可以将生成的whl文件发布到Pypi平台。


文章作者: BITBCI
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 BITBCI !
  目录