一、setuptools介绍
Setuptools是Python Distutils的加强版,使开发者构建和发布Python包更加容易,特别是当包依赖于其他包时。用setuptools构建和发布的包与用Distutils发布的包是类似的。包的使用者无需安装setuptools就可以使用该包。如果用户是从源码包开始构建,并且没有安装过setuptools的话,则只要在你的setup脚本中包含一个bootstrap模块(ez_setup),用户构建时就会自动下载并安装setuptools了。
功能亮点:
利用EasyInstall自动查找、下载、安装、升级依赖包
创建Python Eggs
包含包目录内的数据文件
自动包含包目录内的所有的包,而不用在setup.py中列举
自动包含包内和发布有关的所有相关文件,而不用创建一个MANIFEST.in文件
自动生成经过包装的脚本或Windows执行文件
支持Pyrex,即在可以setup.py中列出.pyx文件,而最终用户无须安装Pyrex
支持上传到PyPI
可以部署开发模式,使项目在sys.path中
用新命令或setup()参数扩展distutils,为多个项目发布/重用扩展
在项目setup()中简单声明entry points,创建可以自动发现扩展的应用和框架
二、简单的例子
python中安装包的方式有很多种:
源码包:python setup.py install
在线安装:pip install 包名 / easy_install 包名
pip install的东西从哪里来的?
从PyPI (Python Package Index)来的,官网是: https://pypi.python.org/pypi
执行pip install terminaltranslator命令的时候,它就会去从官方网站搜terminaltranslator,搜到了就下载压缩包并解压安装,如果没有搜索到就会报错。
1、源码包安装
源码包安装就是你在本地编写好了一个模块,自己安装在本地使用,别人(即使是你自己)都不能 pip install xxx 下载你的模块
1.准备工作
#1.首先创建我们需要的目录结构和文件(自行创建)
# 当前测试的目录是: /tmp/demo
`--demo|--helloapp| |--hello.py| `-- __init__.py|-- __init__.py|--myapp| |-- __init__.py| `--myapp.py
`--setup.py#2.编辑 setup.py
from setuptools importsetup, find_packages
setup(
name="demo",
version="1.0",
author="zbj",
author_email="",
packages=find_packages(),
)#3.编辑 hello.py
defhello_func():print("HelloWorld")#4.编辑 myapp.py
defmyapp_func():print("嘿嘿嘿")
2.源码安装
#进入setup.py所在的那层目录
cd /tmp/demo#检查setup.py 是否有