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模块制作

评论关闭