标签:tox 内容 密码 ati 源代码 引用 src forms int
使用Python编程的都知道,Python的包安装非常的方便,一般都是可以pip来安装搞定:
sudo pip install <package name>
pip的安装请移步:https://pip.pypa.io/en/stable/installing/
最近因为项目上的需要,发布了一个自己的pypi Python包,这里我大致分享如何发布自己的Pypi包一般过程。
打包工作主要依赖python的一个叫setuptools的包来完成,在进行下面操作前请使用pip安装它:
sudo pip install setuptools
记住自己的用户名和密码,后面上传的时候要输入的
#!/usr/bin/env python # coding=utf-8 from setuptools import setup, find_packages setup( name=‘persist-queue‘, version=__import__(‘persistqueue‘).__version__, description=( ‘A thread-safe disk based persistent queue in Python.‘ ), long_description=open(‘README.rst‘).read(), author=‘Peter Wang‘, author_email=‘wangxu198709@gmail.com‘, maintainer=‘Peter Wang‘, maintainer_email=‘wangxu198709@gmail.com‘, license=‘BSD License‘, packages=find_packages(), platforms=["all"], url=‘http://github.com/peter-wangxu/persist-queue‘, classifiers=[ ‘Development Status :: 4 - Beta‘, ‘Operating System :: OS Independent‘, ‘Intended Audience :: Developers‘, ‘License :: OSI Approved :: BSD License‘, ‘Programming Language :: Python‘, ‘Programming Language :: Python :: Implementation‘, ‘Programming Language :: Python :: 2‘, ‘Programming Language :: Python :: 2.7‘, ‘Programming Language :: Python :: 3‘, ‘Programming Language :: Python :: 3.4‘, ‘Programming Language :: Python :: 3.5‘, ‘Programming Language :: Python :: 3.6‘, ‘Topic :: Software Development :: Libraries‘ ], )
需要注意的上面的字段:
我的long_description是同目录下的README.rst的内容,同时这个README也是我的github项目首页。
install_requires=[ ‘Twisted>=13.1.0‘, ‘w3lib>=1.17.0‘, ‘queuelib‘, ‘lxml‘, ‘pyOpenSSL‘, ‘cssselect>=0.9‘, ‘six>=1.5.2‘, ‘parsel>=1.1‘, ‘PyDispatcher>=2.0.5‘, ‘service_identity‘, ]
mock>=2.0.0 flake8>=3.2.1 eventlet>=0.19.0 nose2>=0.6.5 cov_core>=1.15.0 virtualenv>=15.1.0
以上是我的test-requirements.txt的内容,requirements.txt的格式个上面一样。
准备这个两个文件不是必须的。
但是,有了它们,用户可以自己手动安装依赖包
pip install -r requirements.txt
有了它们,结合tox等工具,可以非常方便的加入自动化测试。
下面是我的README的截图,就长这个样子:
可以使用下面命令打包一个源代码的包:
python setup.py sdist build
这样在当前目录的dist文件夹下,就会多出一个以tar.gz结尾的包了:
也可以打包一个wheels格式的包,使用下面的命令搞定:
python setup.py bdist_wheel --universal
这样会在dist文件夹下生成一个whl文件,
# 上传source 包 python setup.py sdist upload # 上传pre-compiled包 python setup.py bdist_wheel upload
使用twine上传,先安装twine
sudo pip install twine twine upload dist/*
上次前都会提示你前面注册的用户名和密码。一切搞定,你的包现在可以通过pip在任何地方安装了。
其实对于一个包,你要长久维护,自动测试肯定要加入,后面有时间再分享下如何使用tox的使用和与第三方CI的集成。
引用链接:
pypi详细教程: https://packaging.python.org/distributing
我的开源python包: https://github.com/peter-wangxu/persist-queue
标签:tox 内容 密码 ati 源代码 引用 src forms int
原文地址:http://www.cnblogs.com/sting2me/p/6550897.html