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

原文地址:https://www.cnblogs.com/potato-chip/p/9076870.html