Python-分发工具初探之-setuptools

本文探讨setuptools作为Python disutils增强版的角色,它简化了包创建和分发,尤其处理复杂依赖关系。setuptools提供EasyInstall来自动处理依赖,创建Eggs,包含数据文件,自动生成脚本等功能。还介绍了在Ubuntu和Mac上安装setuptools的步骤,以及创建和打包Python包的基本过程。
摘要由CSDN通过智能技术生成

这篇文章主要介绍了一下 setuptools 是什么,以及它的功能和特点,并且介绍了如何使用它来创建和安装使用自己的包,这篇文章仅仅讲了最基本的功能和用法,一些对于进阶的用法会在下篇文章中进行介绍。

0x00 setuptools 是什么

setuptools 与 disutils

我们通常所知道的 Python 分发工具是 Python disutils, setuptools 可以说是它的增强版,它能帮助我们更好的创建和分发 Python 的包,尤其是具有复杂依赖关系的包。对于开发者来说,能够更好的组织自己项目的分发和发布;对于用户来说,不需要安装 setuputils 也可以使用由它创建的包,只需要一个启动模块即可。

实现这样的的包管理机制主要由两部分构成:

  • 一个存储在 Python 官方网站的集中式仓库,名叫 Python Package Index(PyPI)
  • 另外就是基于 disutils 开发的 setuptools 包管理系统

它提供的内容包括:

  • 用来提供标准元数据字段:诸如作者名、版权类型等信息的骨架
  • 一组用来将包中的代码来构建软件安装包的辅助工具

disutils 仅仅适用于包,它无法定义包之间的依赖关系。但是 setuptools 通过添加一个基本的依赖系统以及许多相关功能,弥补了该缺陷。他还提供了自动包查询程序,用来自动获取包之间的依赖关系,并完成这些包的安装,大大降低了安装各种包的难度,使之更加方便。

相关功能

  • 利用 EasyInstall 自动查找、下载、安装升级依赖包
  • 能够创建 Python Eggs、
  • 包含目录中的数据文件和包,不需要在 setup() 函数中一一列举出来
  • 自动包含包内和发布有关的所有相关文件,而不用创建一个 MANIFEST.in文件
  • 自动生成经过包装的脚本
  • 支持Pyrex,即在可以 setup.py 中列出 .pyx 文件,而最终用户无须安装Pyrex
  • 支持上传到 PyPI
  • 可以部署开发模式,使项目在sys.path中
  • 用新命令或 setup() 参数扩展distutils,为多个项目发布/重用扩展
  • 在项目的 setup()中简单声明 entry points,创建可以自动发现扩展的应用和框架

0x01 安装 setuptools

**Ubuntu:

sudo apt-get install python-setuptools

Mac:

安装 wget:

curl -O http://ftp.gnu.org/gnu/wget/wget-1.13.4.tar.gz
tar -xzvf wget-1.13.4.tar.gz
cd wget-1.13.4
./configure
make
sudo make install

安装 setuputils:

wget http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py

0x02 创建一个简单的包

创建一个空的包

新建一个 demo 目录

mkdir demo1
cd demo1

在目录下新建 setup.py 文件

from setuptools import setup, find_packages

setup(
name = 'demo1',
version = '0.1',
packages = find_packages(),
)

将该项目打包

python setup.py bd
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值