有时,自己写的一个工具,复用性很高,当前脚本中需要用到,在其他脚本中也需要使用,这时,就需要将脚本打成可以使用pip install的包,安装到本地库
下面演示案例,目的是把demo下的脚本打成包,demo的结构目录如下图
解释一下__init__.py文件
在Python中,一个.py文件就称之为一个模块(Module)
为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)
每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,
否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码
也就是说hello_world是一个包,hello.py为模块
hello.py文件中的代码如下,只有一个的say_hello方法
def say_hello(name):
print("hello,{}".format(name))
此时,我们要在demo目录下创建setup.py文件
from setuptools import setup, find_packages
setup(
name = 'demo', #pip安装成功后pip list显示的名字
version = '0.0.1', #版本号
description = 'test package',
license = 'MIT License',
author = 'Nengjun',
author_email = 'ahhunengjun@163.com',
url = "https://github.com/WhisperLoli", #项目主页,如果有的话
packages = find_packages(),
platforms = 'any'
)
setup.py写完之后,需要检查一下
python setup.py check #检查一下有无错误,setup中是否缺少参数
打包需要使用到docutils包,所以先安装一下
pip install docutils
之后打包代码
python setup.py sdist
完成后新的目录如下
会生成一个dist文件夹,进入该文件夹中
cd dist
pip install demo-0.0.1.tar.gz #安装打包的文件
安装完成后,可以使用如下命令查看是否安装成功,如果安装成功会显示安装的名字和版本号
pip list | grep "demo*"
安装成功即可在代码中使用