通常我们开发一个Python开源项目,想在多台服务器上部署,或者贡献项目为其他开发者来使用,最好的方式是发布到PyPI(Python包管理平台) ,之后可以通过pip install package方式安装包,下面将介绍最基本的Python项目打包和发布的方法,其实目前有很多方法,您还可以通过访问官方打包文档来深入理解: PyPI打包和分发文档。

1.介绍Python项目目录结构

1.png

上面是我之前开发的一个项目,这个项目对hive cli进行了简单的封装,简化以后其他项目有关hive命令开发工作,具体内容这里不多说了,感兴趣的朋友可以去了解一下,提一些宝贵意见。(这个项目放在github)。

项目最顶层的目录为“hive-executor-py”,其中与打包最相关的文件是setup.py,下面附上setup.py里面的内容:

#!/usr/bin/env python
from setuptools import setup
setup(
name='hive-executor-py',
version='1.0.0.dev1',
description='A hive client python project',
url='https://github.com/calvinjiang/hive-executor-py',
author='Calvin Jiang',
author_email='jianghuachinacom@163.com',
license='MIT',
classifiers=[
'Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'Topic :: Software Development :: Build Tools',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
],
keywords='hive client python',
packages=['hive'],
)
name为项目名称,和顶层目录名称一致;
version是项目当前的版本,1.0.0.dev1表示1.0.0版,目前还处于开发阶段
description是包的简单描述,这个包是做什么的
url为项目访问地址,我的项目放在github上。
author为项目开发人员名称
author_email为项目开发人员联系邮件
license为本项目遵循的授权许可
classifiers有很多设置,具体内容可以参考官方文档
keywords是本项目的关键词,理解为标签
packages是本项目包含哪些包,我这里只有一个名词为hive的包
2.项目打包
cd hive-executor-py
python setup.py bdist_wheel

进入项目目录,执行项目打包命令,之后在顶层项目目录下将产生几个新的目录:

2.png

3. 注册PyPI帐号

如果没有账号需要先在PyPI网站上注册账号。

在您的本机用户下创建~/.pypirc文件,此文件中配置PyPI访问地址和账号。下面是我的.pypirc文件内容请根据自己的账号来修改。

[distutils]

index-servers = pypi

[pypi]

username:jianghua

4. 注册您的项目

python setup.py register

通过上面.pypirc文件中的配置,在PyPI上注册项目信息,成功注册之后,可以在PyPI上看到自己的项目名称:

3.png

5. 上传项目

python setup.py sdist bdist_wheel upload

通过上面.pypirc文件中的配置,上传打包文件,可以在PyPI上看到上传的项目文件:

4.png