python如何发布模块-Python中模块的发布与安装

模块(Module)

Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块。通俗的来说,模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块。

导入模块

import: 引入具体模块,可以一次性引入多个模块,使用逗号隔开即可

eg:import modlue1,module2,module3,.....moduleN , 使用模块中的函数时,格式为:moduleName.funName()

from ... import ... : 从模块中导入一个指定的部分到当前命名空间

eg:from modduleName import name1 [,name2 [,name3 [,....nameN]]]

from ... import * : 把一个模块的所有内容全都导入到当前的命名空间

eg: from moduleName import *

包将有联系的模块组织在一起,有效避免模块名称冲突问题,让应用组织结构更加清晰。

一个包可以包含多个模块。

假定我们的包的例子有如下的目录结构:

Phone/

__init__.py

common_util.py

Voicedta/

__init__.py

Pots.py

Isdn.py

Fax/

__init__.py

G3.py

Mobile/

__init__.py

Analog.py

igital.py

Pager/

__init__.py

Numeric.py

Phone 是最顶层的包,Voicedta 等是它的子包。 我们可以这样导入子包:

import Phone.Mobile.Analog

Phone.Mobile.Analog.dial()

你也可使用 from-import 实现不同需求的导入

模块制作

首先定义函数方法文件,文件里面定义了多个函数方法可提供给外界使用。

moudle里一般都会有一个__init__.py文件。有的__init__.py中是空白,有的却会有__all__参数。

如果其他页面import 的时候如果__init__.py是空白的,可以直接import到moudle的所有函数。而如果__init__.py中定义了__all__,则import 的时候只会导入__all__部分定义的内容。

模块发布

模块的目录结构体:

├── setup.py

├── suba

│ ├── aa.py

│ ├── bb.py

│ └── __init__.py

└── subb

├── cc.py

├── dd.py

└── __init__.py

模块的目录结构中包含一个setup.py文件,用于定义模块名称、包含的模块等模块信息。

setup.py中的内容:

from distutils.core importsetup

setup(name="模块名称", version="版本", description="模块描述", author="模块作者", py_modules=["suba.aa", "suba.bb", "subb.cc", "subb.dd"(此处主要是包含的模块内容)])

构建模块

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

生成发布压缩包

Linux命令(当前位置位于模块文件夹):

python setup.py sdist

打包后,生成最终发布压缩包 moduleName-version.tar.gz , 目录结构

.

├── build

│ └── lib.linux-i686-2.7

│ ├── suba

│ │ ├── aa.py

│ │ ├── bb.py

│ │ └── __init__.py

│ └── subb

│ ├── cc.py

│ ├── dd.py

│ └── __init__.py

├── dist

│ └── xwp-1.0.tar.gz

├── MANIFEST

├── setup.py

├── suba

│ ├── aa.py

│ ├── bb.py

│ └── __init__.py

└── subb

├── cc.py

├── dd.py

└── __init__.py

模块安装

找到模块的压缩包

解压

进入文件夹

执行命令sudo python setup.py install

此时,该模块已经安装到系统中,可以直接使用import关键字进行导入模块。

ps:如果在install的时候,执行目录安装,可以使用python setup.py install --prefix=安装路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值