因为项目须要将API响应的XML内容解析成python对象,写了一个简单的xml转python的库,由于功能简单,细节处理也很差,文档也没有,没想也很差意思上传到pypi。html
后来因为多个不一样的独立的服务都须要这个转换功能,若是每一个服务都把这个库放置于各自的目录下,维护起来很麻烦,才想到完善这个库,上传到PyPI,经过pip来统一管理。python
在PyPI正式站点和PyPI测试站点分别注册一个账号,用于后面上传。为了便于记忆,我使用了相同的账号和密码。git
此文件主要用于上传包到PyPI时验证权限。在用户根目录下建立文件~/.pypirc,内容以下:github
[distutils] index-servers = pypi pypitest [pypi] username:xxx password:xxx [pypitest] repository: https://testpypi.python.org/pypi username:xxx password:xxx
每一个项目库下必须有一个setup.py文件,除此以外一样能够建立其余附加的如readme、license等用以项目描述和版权信息的文件。api
可参考官方的说明文档:Creating a Source Distribution测试
下面以lazyxml库做为示例。ui
lazyxml/ |-- LICENSE |-- MANIFEST.in |-- Makefile |-- README.rst |-- demo | |-- compat.py | |-- dump.py | |-- load.py | `-- xml | |-- dump-fp.xml | |-- dump.xml | |-- gbk.xml | |-- namespace.xml | `-- normal.xml |-- docs | |-- Makefile | |-- changelog.rst | |-- conf.py | |-- index.rst | |-- lazyxml | | |-- builder.rst | | |-- dump.rst | | |-- dumps.rst | | |-- index.rst | | |-- load.rst | | |-- loads.rst | | `-- parser.rst | `-- make.bat |-- lazyxml | |-- __init__.py | |-- builder.py | |-- parser.py | `-- utils.py `-- setup.py
项目版权许可证说明url
打包时包含/排除指定规则的文件spa
Makefile脚本简化操做orm
项目介绍说明
样例目录 包含各类项目库api使用示例
项目库Sphinx文档目录
源码目录
包元信息文件
#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import with_statement import sys if sys.version_info < (2, 5): sys.exit('Python 2.5 or greater is required.') try: from setuptools import setup except ImportError: from distutils.core import setup import lazyxml with open('README.rst') as fp: readme = fp.read() with open('LICENSE') as fp: license = fp.read() setup(name='lazyxml', version=lazyxml.__version__, description='Simple xml parse and build lib.', long_description=readme, author='Zonglong Fan', author_email='lazyboy.fan@gmail.com', maintainer='Zonglong Fan', maintainer_email='lazyboy.fan@gmail.com', url='https://github.com/heronotears/lazyxml', packages=['lazyxml'], license=license, platforms=['any'], classifiers=[] )
打包、注册、上传一条命令完成:
python setup.py sdist --formats=gztar register -r pypitest upload -r pypitest
或者执行Makefile命令:
make test
在测试站点发现没有问题后,就能够打包上传到正式站点。
命令:
python setup.py sdist --formats=gztar register upload
或者
make upload
执行上述全部步骤后,没有出现问题的话,一个项目包就会上传到PyPI站点上面。
以后就能够到PyPI站点去查看上传好的包。