因爲項目須要將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站點去查看上傳好的包。