• OpenStack基础知识-项目打包的步骤


    学习过包管理相关的知识后,我们就要以OpenStack的方法来创建一个我们自己的项目。这个项目的名称是webdemo,就是一个简单的web服务器。这个项目会贯穿这个系列文章。在本文中,我们首先要创建webdemo的项目框架并添加软件包管理相关的内容

    项目目录结构
    ~/programming/python/webdemo git:(master) ✗ $ tree .
    .
    ├── LICENSE
    ├── README.md
    ├── requirement.txt
    ├── setup.cfg
    ├── setup.py
    └── webdemo
    └── init.py
    1 directory, 6 files

    这个是一个最简单的Python项目目录:
    •源代码放在子目录webdemo/下
    •然后包含了软件包管理的所需的文件:setup.py, setup.cfg, requirements.txt
    •LICENSE和README

    软件包管理相关
    第一步:设置setup.py内容,就是这么简单:
    setuptools.setup(
    setup_requires=['pbr'], pbr=True)

    第二步:设置setup.cfg文件内容:
    [metadata]
    name = webdemo
    version = 0.0.1
    summary = Web Application Demo
    description-file = README.md
    author = author
    author-email = author@example.com
    classifier =
    Environment :: Web Environment
    Intended Audience :: Developers
    Intended Audience :: Education
    License :: OSI Approved :: GNU General Public License v2 (GPLv2)
    Operating System :: POSIX :: Linux
    Programming Language :: Python
    Programming Language :: Python :: 2
    Programming Language :: Python :: 2.7

    [global]
    setup-hooks =
    pbr.hooks.setup_hook

    [files]
    packages =
    webdemo

    [entry_points]
    console_scripts =

    只包含最基本的信息。
    第三步:设置requirements.txt文件内容:
    pbr<2.0,>=0.11

    目前只依赖于pbr库。源代码目录下现在只有一个空的__init__.py文件。我们已经搭建好了这个最简单的项目框架。

    第四步:把这些代码提交到git库,然后打上tag 0.0.1:
    ~/programming/python/webdemo git:(master) ✗ $ git log --oneline
    697427c Add packaging information
    2cbbf4d Initial commit
    ~/programming/python/webdemo git:(master) ✗ $ git tag -a -s 0.0.1
    ~/programming/python/webdemo git:(master) ✗ $ git tag
    0.0.1

    第五步:使用python setup.py sdist命令来生成一个0.0.1版本的源码归档文件
    ~/programming/python/webdemo git:(master) ✗ $ python setup.py sdist
    running sdist
    [pbr] Writing ChangeLog
    [pbr] Generating ChangeLog
    [pbr] Generating AUTHORS
    running egg_info
    writing pbr to webdemo.egg-info/pbr.json
    writing webdemo.egg-info/PKG-INFO
    writing top-level names to webdemo.egg-info/top_level.txt
    writing dependency_links to webdemo.egg-info/dependency_links.txt
    writing entry points to webdemo.egg-info/entry_points.txt
    [pbr] Processing SOURCES.txt
    [pbr] In git context, generating filelist from git
    warning: no previously-included files found matching '.gitreview'
    warning: no previously-included files matching '*.pyc' found anywhere in distribution
    writing manifest file 'webdemo.egg-info/SOURCES.txt'
    warning: sdist: standard file not found: should have one of README, README.rst, README.txt

    running check
    warning: check: missing required meta-data: url
    creating webdemo-0.0.1
    creating webdemo-0.0.1/webdemo
    creating webdemo-0.0.1/webdemo.egg-info
    making hard links in webdemo-0.0.1...
    hard linking AUTHORS -> webdemo-0.0.1
    hard linking ChangeLog -> webdemo-0.0.1
    hard linking LICENSE -> webdemo-0.0.1
    hard linking README.md -> webdemo-0.0.1
    hard linking requirement.txt -> webdemo-0.0.1
    hard linking setup.cfg -> webdemo-0.0.1
    hard linking setup.py -> webdemo-0.0.1
    hard linking webdemo/init.py -> webdemo-0.0.1/webdemo
    hard linking webdemo.egg-info/PKG-INFO -> webdemo-0.0.1/webdemo.egg-info
    hard linking webdemo.egg-info/SOURCES.txt -> webdemo-0.0.1/webdemo.egg-info
    hard linking webdemo.egg-info/dependency_links.txt -> webdemo-0.0.1/webdemo.egg-info
    hard linking webdemo.egg-info/entry_points.txt -> webdemo-0.0.1/webdemo.egg-info
    hard linking webdemo.egg-info/not-zip-safe -> webdemo-0.0.1/webdemo.egg-info
    hard linking webdemo.egg-info/pbr.json -> webdemo-0.0.1/webdemo.egg-info
    hard linking webdemo.egg-info/top_level.txt -> webdemo-0.0.1/webdemo.egg-info
    copying setup.cfg -> webdemo-0.0.1
    Writing webdemo-0.0.1/setup.cfg
    Creating tar archive
    removing 'webdemo-0.0.1' (and everything under it)
    ~/programming/python/webdemo git:(master) ✗ $ ls dist
    webdemo-0.0.1.tar.gz
    ~/programming/python/webdemo git:(master) ✗ $ ls
    AUTHORS ChangeLog dist LICENSE README.md requirement.txt setup.cfg setup.py webdemo webdemo.egg-info

    验证成功,在dist/目录下生成了一个0.0.1版本的源码归档,同时生成了如下的文件和目录:AUTHORS, ChangeLog, webdemo.egg-info

  • 相关阅读:
    学算法还能指导找对象?是的,这就是大名鼎鼎的稳定婚姻算法
    机器学习 | 详解GBDT梯度提升树原理,看完再也不怕面试了
    Python | 面试的常客,经典的生产消费者模式
    LeetCode 89,因为题目晦涩而被点了1500+反对的搜索问题
    LeetCode 87,远看是字符串其实是搜索,你能做出来吗?
    Golang | Go语言多态的实现与interface使用
    pandas | DataFrame基础运算以及空值填充
    算法数据结构 | 只要30行代码,实现快速匹配字符串的KMP算法
    Mac上使用Docker安装SQLServer
    [翻译]ASP.NET Core在 .NET 5 Preview 7的更新
  • 原文地址:https://www.cnblogs.com/potato-chip/p/9076870.html
Copyright © 2020-2023  润新知