❝setuptools是python标准的打包分发工具,它可以将我们编写的python项目打包安装,这样其他同事就可以像调用标准库或python第三方库那样直接使用;也可以将项目上传到Pypi供更多人的下载安装使用。
❞
1. 项目结构❝这是一个打包构建好的一个目录结构。构建前的结构包含:demo、docs、setup.py ,其中主要的就是demo文件夹和setup.py。
❞
2.setup文件说明❝setup.py定义了打包程序的一些相关信息
❞
import os, shutil
from 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
# 查看程序打包和分发可以使用的命令有哪些