上传python包到PyPI

一、前言

由于项目需要将API响应的XML内容解析成python对象,写了一个简单的xml转python的库,因为功能简单,细节处理也不好,文档也没有,没想也不好意思上传到pypi。

后来由于多个不同的独立的服务都需要这个转换功能,如果每个服务都把这个库放置于各自的目录下,维护起来很麻烦,才想到完善这个库,上传到PyPI,通过pip来统一管理。

二、创建账号

PyPI正式站点PyPI测试站点分别注册一个帐号,用于后面上传。为了便于记忆,我使用了相同的帐号和密码。

三、创建.pypirc配置文件

此文件主要用于上传包到PyPI时验证权限。在用户根目录下创建文件~/.pypirc,内容如下:

[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等用以项目描述和版权信息的文件。

可参考官方的说明文档:Creating a Source Distribution

下面以lazyxml库作为示例。

lazyxml项目库的结构

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 

 

项目文件说明

LICENSE

项目版权许可证说明

MANIFEST.in

打包时包含/排除指定规则的文件

Makefile

Makefile脚本简化操作

  • help: 帮助
  • install: 安装包
  • pack: 打包
  • upload: 打包上传到PyPI正式站点
  • test: 打包上传到PyPI测试站点
  • clean: 清理

README.rst

项目介绍说明

demo

样例目录 包含各种项目库api使用示例

docs

项目库Sphinx文档目录

lazyxml

源码目录

setup.py

包元信息文件

#!/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=[]
      )

 

五、打包上传到PyPI测试站点

打包、注册、上传一条命令完成:

python setup.py sdist --formats=gztar register -r pypitest upload -r pypitest

或者执行Makefile命令:

make test

六、打包上传到PyPI正式站点

在测试站点发现没有问题后,就可以打包上传到正式站点。
命令:

python setup.py sdist --formats=gztar register upload

或者

make upload

七、尾言

执行上述所有步骤后,没有出现问题的话,一个项目包就会上传到PyPI站点上面。

之后就可以到PyPI站点去查看上传好的包。

posted @ 2014-07-08 11:44  布雷泽  阅读(3945)  评论(0编辑  收藏  举报