Python-打包

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的软件包,指定依赖包的下载地址
    )
    
  2. 发布方式
    • 以源码包的方式发布:先解压,再编译,最后安装。所以它是跨平台的,但每次安装都要进行编译,安装速度较慢。常见格式: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

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码大玩家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值