大家在使用python时,肯定会需要安装各种各样的依赖包,常用的安装方法就是使用pip了。
比如安装numpy的简单命令为:
pip install numpy你是否想过这些包是怎么被安装的呢?又是如何制作的呢?或者说自己开发了一个很棒的东西想要分享给别人该怎么办呢?
好吧,不卖关子了,下面就从头到尾捋一捋如何打包自己的项目并发布到网上去,如此一来,别人就可以使用pip来安装自己开发的包了,想想都好激动。
以一个简单的项目作为例子,这个项目是非常不错的log打印,称为nicelogger,带有各种色彩打印log到控制台,比如error使用红色,info使用蓝色等等,
话说自从用了nicelogger,再也没有用过print了。
项目配置
目录结构如下图所示:
项目很简单,只有两个py文件,其中nicelogger.py是主要模块,所有功能代码都在里面,其实就是一个类ColorLogger;还有一个setup.py文件,这个文件用于配置发布包的meta 信息,比如包的名字,版本号,项目描述,作者,作者链接,作者邮箱等等,还有一项很重要的配置那就是python模块名,有些还需要配置程序入口和资源文件的路径,比如要编译成exe可执行文件的话,不过这个项目不需要就不唠叨了。
对于这个项目的setup.py配置如下:
from setuptools import setup, find_packages
from codecs import open
from os import path
here = path.abspath(path.dirname(__file__))
setup(
name='nicelogger',
version='2.0',
description='Customize New Features Based-on Colored Logger',
long_description=str(open(path.join(here, "Learning tracker")).read()),
# The project's main homepage.
url='opconty - Overview',
# Author details
author='gaolijun',
author_email='gao.gzhou@gmail.com',
# Choose your license
license='MIT',
classifiers=[
'Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'Topic :: System :: Logging',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
],
py_modules=["nicelogger"],
install_requires=['colorama']
)
特别留意一下py_modules配置项,nicelogger是模块名称,后面我们通过pip安装nicelogger之后就可以通过nicelogger导入该模块里面的类ColorLogger了。
其中README.md文件就是一些项目描述,使用markdown书写,可以解析markdown的语法,排版比较好看,或者简单文本也行就是难看些。
2. 打包
进入到与setup.py同级目录,打开终端,因为我们只需要创建wheel文件,输入
python setup.py bdist_wheel
会在当前目录生成三个文件夹,build、dist和nicelogger.egg-info,在dist下有一个nicelogger-2.0-py3-none-any.whl文件,这就是需要的。
如果还需要发布源代码,那在上述命令中加入bdist就好了,即`python setup.py sdist bdist_wheel`,会在dist下生成源码的压缩tar包。
3. 发布
发布包需要先在pypi(Python Package Index)网站注册账号,将自己的wheel文件上传到pypi网站,任何人都可以通过pip install进行安装。
上传包有很多方法,这里使用命令行的方式,需要安装twine,使用
pip install twine
即可安装,然后在与dist同级目录的终端中输入:
twine upload dist/*
即将dist下的所有文件上传,会出现输入用户名和密码的提示语,然后输入刚刚在pypi注册的用户名和密码就可以了。上传成功之后登录pypi网站可以看到自己的所有包。
4. 安装及验证
安装很简单,以这个项目为例,那就是
pip install nicelogger
除了在pypi网站查看包的信息外,还可以通过pip命令查看,如
pip show nicelogger
安装好了之后可以新建一个Python文件,或者直接在ipython终端中验证:
from nicelogger import ColorLogger
logger = ColorLogger()
logger.success('ok')
好了,从现在开始你也可以分享自己的项目让全世界的python爱好者一起使用,赶紧试试吧。
思想因文字而得以传递,知识因分享而绚烂缤纷
如何打包发布Python项目,让全世界的人都能用mp.weixin.qq.com