目录

  • 1. 简单介绍
  • 2. 打包工具
  • 3. 如何打包
  • 5. 相关资料


1. 简单介绍

将项目或工具打包成模块,使用pip进行安装和使用。

2. 打包工具

  • distutils:分发(distribute)工具(utlis),Python 官方开发的一个分发打包工具。精髓在于编写 setup.py,它是模块分发与安装的指导文件。通过源码安装包时会用到:
python setup.py install
  • setuptools:distutils的增强版,常用该版本。

3. 如何打包

  1. 打包的关键在于如何编写 setup.py 文件。简单常用如下:
from setuptools import setup, find_packages
from codecs import open
from os import path

# 包的版本
__version__ = '0.0.4'
# 该项目依赖的包
base_path = path.abspath(path.dirname(__file__))
with open(path.join(base_path, 'requirements.txt'), encoding='utf-8') as f:
    all_reqs = f.read().split('\n')
install_requires = [one.strip() for one in all_reqs]
dependency_links = ["http://xxxxxxx.com/xxxxx-1.0.tar.gz"]

setup(
    name='包名字',
    version=__version__,
    description='描述信息',
    url='项目主页',
 	download_url='包下载链接',
    license='MIT',
    author_email='邮箱地址',
    author='作者名字',
    packages=find_packages(),  # 找到当前目录下有哪些包。
    include_package_data=True, # 在MANIFEST.in文件指定的包目录中自动包含找到的所有数据文件。
    install_requires=install_requires,  # 当前模块依赖哪些包,安装模块时会自动安装依赖包。
    setup_requires=['numpy>=1.10', 'scipy>=0.17'], # 运行setup.py本身要依赖的包
    dependency_links=dependency_links, # 用于安装setup_requires的软件包,指定依赖包的下载地址
)
  1. 发布方式
  • 以源码包的方式发布:先解压,再编译,最后安装。所以它是跨平台的,但每次安装都要进行编译,安装速度较慢。常见格式:zip、tar、gztar等。
python setup.py sdist	# 输出到 dist/xxxxx.tar.gz
  • 以二进制包形式发布:省去了编译的过程,安装速度更快。但不同平台的编译出来的包无法通用,不支持夸平台使用。常见格式:egg、wheel等。
python setup.py bdist_wininst		# 输出到 dist/xxxxx.exe
python setup.py bdist_egg			# 输出到 dist/xxxxx.egg
python setup.py bdist_wheel		# 输出到 dist/xxxxx.whl

5. 相关资料

资料-1资料-2资料-3