Python模块制作,,在Python中,每
Python模块制作,,在Python中,每
在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。
定义自己的模块
比如有这样一个文件test.py,在test.py中定义了函数add
def add(a,b): return a+b
调用自己定义的模块
在其他文件中就可以先import test,然后通过test.add(a,b)来调用了,当然也可以通过from test import add来引入
#fileName:main.pyimport testresult = test.add(11,22)print(result)
测试模块
在实际开中,当一个开发人员编写完一个模块后,为了让模块能够在项目中达到想要的效果,这个开发人员会自行在py文件中添加一些测试信息,例如:
#fileName:test.py def add(a,b): return a+bif __name__ == '__main__': # 用来进行测试 ret = add(12,22) print('int test.py file,,,,12+22=%d'%ret)
如果此时,在其他py文件中引入了此文件的话,想想看,测试的那段代码是否也会执行呢!
#fileName:main.pyimport testresult = test.add(11,22)print(result)
模块发布
上面的都是简单的例子,学会了模块的制作后下来就是发布了,下面就是例子
mymodule目录结构体如下:
.├── setup.py├── suba│ ├── aa.py│ ├── bb.py│ └── __init__.py└── subb ├── cc.py ├── dd.py └── __init__.py
编辑setup.py文件
py_modules需指明所需包含的py文件
from distutils.core import setupsetup(name="ylg", version="1.0", description="ylg's module", author="ylg", py_modules=['suba.aa', 'suba.bb', 'subb.cc', 'subb.dd'])
构建模块
执行(window和linux一样)
python setup.py build
构建后目录结构
.├── build│ └── lib.linux-i686-2.7│ ├── suba│ │ ├── aa.py│ │ ├── bb.py│ │ └── __init__.py│ └── subb│ ├── cc.py│ ├── dd.py│ └── __init__.py├── setup.py├── suba│ ├── aa.py│ ├── bb.py│ └── __init__.py└── subb ├── cc.py ├── dd.py └── __init__.py
生成发布压缩包
打包后,生成最终发布压缩包ylg-1.0.tar.gz , 目录结构
Windows也可以用压缩软件压缩
.├── build│ └── lib.linux-i686-2.7│ ├── suba│ │ ├── aa.py│ │ ├── bb.py│ │ └── __init__.py│ └── subb│ ├── cc.py│ ├── dd.py│ └── __init__.py├── dist│ └── ylg-1.0.tar.gz├── MANIFEST├── setup.py├── suba│ ├── aa.py│ ├── bb.py│ └── __init__.py└── subb ├── cc.py ├── dd.py └── __init__.py
模块安装、使用
找到模块的压缩包解压进入文件夹执行命令python setup.py install注:如果在install的时候,执行目录安装,可以使用python setup.py install --prefix=安装路径
使用和其他模块一样就不说了
Python模块制作
评论关闭