• python pbr 打包


    在之前学习stevedore时,在setup.py中使用setuptools打包发布了代码,然后调用代码中的实例化对象。参考我的文章 https://www.cnblogs.com/CaesarLinsa/p/8571297.html

    今天使用更方便的方式,使用pbr。pbr是一个管理python setuptools 的工具库,pbr模块读入setup.cfg文件的信息,并且给setuptools 中的setup hook 函数填写默认参数,提供更加有意义的行为。

    pbr只需要最小化的setup.py 文件,描述包的内容:

    import setuptools
    setuptools.setup(setup_requires=['pbr'], pbr=True)
    setup.py 所需的实际元数据存储在setup.cfg中:
    [metadata] #包信息
    name = caesarlinsa # 包名
    version = 1.0 # 版本
    description-file = README.md #描述文件
    author = caesar #作者
    author-email = author@example.com  # 作者邮箱
    classifier =
        Intended Audience :: Developers    # 功用,平台等
        Programming Language :: Python :: 2.7  # python 版本
    
    [files]
    packages =
        caesar #包名 递归Python包层次结构并安装,如果未指定packages,则默认为[metadata]部分中给出的name字段的值。注意会根据__init__.py进行递归扫描
    extra_files =
    requirements.txt # 描述包依赖的pip源文件
    [entry_points] # 模块入口
    caesar.metering.storage =
        mongodb = caesar.storage.impl_mongodb:Connection
    console_scripts  = # 可执行脚本,在linux上/usr/local/bin,在windows上在python的Scripts中生成。
    caesar-api = Test.cmd.api:main

    其中最感兴趣的是[entry_points],因为可以通过注册功能模块的方式,在一个包中引入不同的模块,并使其相互调用。如果不使用这种方式,使用sys.path.append()引入自定义模块,将非常复杂,并且很不pythonic。
    在linux环境上发布包并进行安装,会默认部署在/usr/lib/python2.7/dist-packages/caesar目录下,调用执行都OK。
    可以使用以下三种方式打包:
    1 tar.gz格式:这个就是标准压缩格式,里面包含了项目元数据和代码,使用python setup.py sdist命令生成。
    2 .egg格式:本质上一个压缩文件,扩展名换了,里面也包含了项目元数据以及源代码。可以通过命令python setup.py bdist_egg命令生成。
    3 .whl格式:这个是Wheel包,也是一个压缩文件,只是扩展名换了,里面也包含了项目元数据和代码。可以通过命令python setup.py bdist_wheel生成.
    在windows环境上,安装包后就可以调用[entry_points]中的模块,而不出现异常报错。

    Eroor:

    1.当出现以下错误,请使用git init初始化仓库

    2.在包中注意setup.py和setup.conf放入最外面,比如包Test,需要和包在同一个级,否则打包中会不存在源代码,调用失败。正确做法如下:

    安装见下图,egg文件与源文件复制到dist-packages下

    以上只是个人感悟,具体可参考我的github: https://github.com/CaesarLinsa/ceilometer_TestCase

  • 相关阅读:
    树链剖分 (模板) 洛谷3384
    ST表 (模板) 洛谷3865
    IOI 2005 River (洛谷 3354)
    IOI 2005 River (洛谷 3354)
    poj1094 Sorting It All Out
    poj1094 Sorting It All Out
    spfa(模板)
    HAOI 2006 受欢迎的牛 (洛谷2341)
    HAOI 2006 受欢迎的牛 (洛谷2341)
    洛谷1850(NOIp2016) 换教室——期望dp
  • 原文地址:https://www.cnblogs.com/CaesarLinsa/p/pbr.html
Copyright © 2020-2023  润新知