上传python包到PyPI

1、前言

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

后来因为多个不一样的独立的服务都须要这个转换功能,若是每一个服务都把这个库放置于各自的目录下,维护起来很麻烦,才想到完善这个库,上传到PyPI,经过pip来统一管理。python

2、建立帐号

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

3、建立.pypirc配置文件

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

[distutils]
index-servers =
    pypi
    pypitest

[pypi]
username:xxx
password:xxx

[pypitest]
repository: https://testpypi.python.org/pypi
username:xxx
password:xxx

  

4、建立项目库

每一个项目库下必须有一个setup.py文件,除此以外一样能够建立其余附加的如readme、license等用以项目描述和版权信息的文件。api

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

下面以lazyxml库做为示例。ui

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

项目版权许可证说明url

MANIFEST.in

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

Makefile

Makefile脚本简化操做orm

  • 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=[]
      )

 

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

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

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

或者执行Makefile命令:

make test

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

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

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

或者

make upload

7、尾言

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

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

相关文章
相关标签/搜索