distutils
一、setuptools
1、安装
Python 2.x: sudo apt-get install python-setuptools
Python 3.x: sudo apt-get install python3-setuptools
pip install --upgrade setuptools
2、MANIFEST.in
文件打包配置模板文件,配置格式:
include part1 part2 #包含匹配到的文件
exclude part1 part2 #排除匹配到的文件
recursive-include dir part1 part2 #i包含指定目录及递归子目录下匹配到的文件
recursive-exclude dir part1 part2 #排除指定目录及递归子目录下匹配到的文件
global-include part1 part2 #i包含源码树中所有匹配到的文件
global-exclude part1 part2 #i排除源码树中所有匹配到的文件
prune dir #排除指定目录下所有文件,包括子目录
graft dir #包含指定目录下所有文件,包括子目录
其中:
- 涉及的路径为目录名,而不是包名
- 多条配置顺序不同,结果不同,比如:
test1.rst没有被包含
include test1.rst
global-exclude *.rst
test1.rst被包含
global-exclude *.rst
include test1.rst
另外打源码包时,data files也会根据package_name.egg-info/SOURCES.txt文件拉取,所以MANIFEST.in修改后,打包之前,要删除该文件
package_data: 字典,包和文件匹配模板列表映射,这里是包而非目录
exclude_package_data:字典,包和文件匹配模板列表映射,这里是包而非目录
3、setup.cfg
4、pbr
二、python包格式
1、源码发布包
python setup.py sdist --formats=formats #支持打包成多种格式,formats:zip,gztar
支持的压缩格式如下,默认gztar
--formats=bztar bzip2'ed tar-file
--formats=gztar gzip'ed tar-file
--formats=tar uncompressed tar file
--formats=zip ZIP file
--formats=ztar compressed tar file
2、预构建发布包
python setup.py bdist --formats=formats
python setup.py sdist --formats=formats #支持打包成多种格式,formats:egg,gztar
支持的压缩格式如下,默认gztar
--formats=rpm RPM distribution
--formats=gztar gzip'ed tar file
--formats=bztar bzip2'ed tar file
--formats=ztar compressed tar file
--formats=tar tar file
--formats=wininst Windows executable installer
--formats=zip ZIP file
--formats=msi Microsoft Installer
--formats=egg Python .egg file
此外还提供简化的命令
bdist create a built (binary) distribution
bdist_dumb create a "dumb" built distribution
bdist_rpm create an RPM distribution
bdist_wininst create an executable installer for MS Windows
bdist_egg create an "egg" distribution
bdist_wheel create a wheel distribution
二、pip
1、安装
- 源码安装
源码包地址:
https://pypi.python.org/pypi/pip
解压进入源码目录,执行命令:
python setup.py install - 包管理器安装
yum install -y python-pip - 安装脚本
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本
python2:python get-pip.py # 运行安装脚本
python3: python3 get-pip.py