❝
setuptools是python标准的打包分发工具,它可以将我们编写的python项目打包安装,这样其他同事就可以像调用标准库或python第三方库那样直接使用;也可以将项目上传到Pypi供更多人的下载安装使用。
❞
1. 项目结构
项目结构
❝
这是一个打包构建好的一个目录结构。构建前的结构包含:demo、docs、setup.py ,其中主要的就是demo文件夹和setup.py。
❞
2.setup文件说明
❝
setup.py定义了打包程序的一些相关信息
❞
import os, shutilfrom setuptools import setup, find_packages#移除构建的build文件夹CUR_PATH = os.path.dirname(os.path.abspath(__file__))path = os.path.join(CUR_PATH, 'build')if os.path.isdir(path): print('INFO del dir ', path) shutil.rmtree(path)setup( name = 'demo', #应用名 author = 'selfeasy', version = '0.1', #版本号 packages = find_packages(), #包括在安装包内的Python包 include_package_data = True, #启用清单文件MANIFEST.in,包含数据文件 exclude_package_data = {'docs':['1.txt']}, #排除文件 install_requires = [#自动安装依赖 'Flask>=0.10', ],)
3. 打包分发流程
3.1 打包
python setup.py bdist_egg
❝
该命令会在当前目录下的”dist”目录内创建一个”egg”文件,名为”MyApp-1.0-py2.7.egg”。文件名格式就是”应用名-版本号-Python版本.egg”,我本地Python版本是2.7。同时你会注意到,当前目录多了”build”和”MyApp.egg-info”子目录来存放打包的中间结果。
❞
3.2 安装
python setup.py install
❝
该命令会将当前的Python应用安装到当前Python环境的”site-packages”目录下, 这样其他程序就可以像导入标准库一样导入该应用的代码了。
❞
4.打包方式
❝
打包构建和安装方式有多种,可以选择适合自己的。
❞
python setup.py --help#查看setup文件的配置信息可以包含哪些
python setup.py --help-commands# 查看程序打包和分发可以使用的命令有哪些