Python_制作模块

1. 明确目的和介绍步骤

介绍发布模块,所谓发布模块,就是如果平时开发中, 开发了一些还比较不错的模块,那么就可以把开发出来的模块制作成一个压缩包,然后呢,把这个压缩包啊,分享给所有对python开发感兴趣的人.

Python_制作模块_第1张图片

如果开发了一个还不错的模块,那么就可以把这个模块及时的分享给其他所有对python开发感兴趣的人,这个就是介绍发布模块的目的,明确了目的之后,在发布模块的演练,并不需要死记硬背,如果今后需要把自己的模块儿发布出去,就可以参照步骤,或者参照视频照着做一下就可以,并不需要死记硬背号.要把模块儿制作成压缩包,需要3步,

Python_制作模块_第2张图片

第一步,我们先需要创建一个setup.py ,

Python_制作模块_第3张图片

在Windows下,要安装一个软件,是不是通常需要找到setup这个文件,然后双击安装,而在python中,要把一个模块制作成压缩包,第一步就需要创建一个setup.py,当这个文件准备完成,就要在终端中啊,使用python的解释器来执行一下setup.py,并且传入两个参数,第二步传入一个build的参数,

Python_制作模块_第4张图片

第三步,传入一个sdist的参数,

Python_制作模块_第5张图片

就可以把开发好的模块制作成压缩包了.

2. 制作模块压缩包

接下来就把hm_message这个包制作成一个可以分享的压缩包,为了看清楚文件的变化,又新建了一个空白项目, 叫发布模块,切换到这个项目,

Python_制作模块_第6张图片

现在这个项目中没有任何的文件,那首先先做一个准备工作,把hm_message复制到这个项目.

现在打开文件浏览器,

找到桌面,

然后呢,找到11模块,

 

现在hm_message这个包目录找到了,

就点击右键,然后选择复制到,

Python_制作模块_第7张图片

复制到哪里呢?复制到要演练的 发布模块这个项目,

Python_制作模块_第8张图片

现在点击选择,复制完成,把文件浏览器关掉.

演练的hm_message这个包已经被复制到发布模块这个项目中了,

Python_制作模块_第9张图片

文件准备好了之后,如果想把一个模块制作成压缩包,第一步应该先建立一个python文件,

Python_制作模块_第10张图片

给他起个名字叫setup,那现在就建了一个setup文件,

Python_制作模块_第11张图片

回车,一个空的setup准备完成,

Python_制作模块_第12张图片

Setup这个文件, 格式非常的固定,如果想要把自己开发的模块制作成压缩包,就可以把下面的代码完整的选中, 复制一下,

Python_制作模块_第13张图片

 

然后呢,切换回, 直接粘贴进来就可以,

Python_制作模块_第14张图片

 

粘贴进来之后, 简单的阅读一下代码,第一行代码导入了一个setup函数,第3行代码是来调用setup函数,同时,setup函数最末尾的括号,选中这个括号,第三行的括号会高亮,说明这一段儿括号是一个完整的括号,那中间的内容呢,一个名字等于一个值, 然后逗号,一个名字等于一个值,然后逗号,这种格式的参数叫做多值的字典参数,

把光标放在第三行, 来敲一个setup, 现在回车, 回车之后,现在给提示的参数类型,

Python_制作模块_第15张图片

两个星星就是多值的字典参数.

要传递字典参数, 就来一个名字,来一个等号, 等号后面跟上值就可以了, 每个参数之间使用逗号进行分割, 这个就是setup 这个函数接收的参数类型.

Python_制作模块_第16张图片

现在来看一下, 都传递了哪些参数, 第一个参数name, 是要打包的包名, 第二个参数version是要打包的模块的版本号, 第三个参数描述信息description, 是对打包的模块进行的一个简单的描述, long_description, 是完整的描述信息, author就是开发这个模块的作者, 并且写上自己的邮件地址author_email 以及自己的个人主页url,因为其他的程序员要想跟我们联系,就可以通过电子邮件或者访问我们的个人主页,才能够跟我们建立联系.

看一下最后一个参数,py_modules,这个py_modules后面跟的是一个列表,

 

这个列表中记录的是hm_message这个包中所包含的模块,

Python_制作模块_第17张图片

 

只需要把所有要分享的模块填写在这个列表中就可以,这个就是整个setup文件的格式,现在setup文件准备完成,需要来执行一下这个文件, 

但是setup文件并不能在py charm中执行,要执行这个文件,必须要进入终端,通过python的解释器来执行这个文件,就打开终端,

 

进入到 12_发布模块 这个目录,

 

先敲个ls -l,在这个目录下有个setup.py,

Python_制作模块_第18张图片

 

而要执行这个文件,需要指定一个python的解释器,如果发布的模块是针对python3的,那么就需要使用python3的解释器,如果发布的模块是针对python2的,就使用python2的解释器来执行这个python文件.

那现在就使用python3的解释器来执行一下setup.py,

Python_制作模块_第19张图片

 

同时注意跟上文件名之后还不够,在后面还需要指定一个参数,第二步是构建模块,这个时候使用python的解释器执行setup时需要在末尾增加一个build,

Python_制作模块_第20张图片

 

也就是构建的意思,在末尾增加一个build,

Python_制作模块_第21张图片

 

回车, 回车之后,有一些提示信息,

Python_制作模块_第22张图片

 

现在就使用tree命令来查看一下当前的目录结构,回车,同回车之后,可以看到,当前这个目录下多了一个build目录,

Python_制作模块_第23张图片

 

build目录下,有个lib, 然后呢, 是hm_message这个目录, 在hm_message目录下, 有一个__init__.py, 以及要分享的两个模块,

这个就是使用python 解释器在执行setup.py时, 跟上build 这个参数产生的结果, 而build 目录下所有的文件, 就是我们最终打包的压缩包里面包含的文件.这样第二步就做完了.

第三步就生成发布压缩包, 而要生成压缩包, 同样要用python 的解释器执行一下setup.py, 这次在末尾跟上一个sdist, 

Python_制作模块_第24张图片

回到终端,

 

按一下向上的键,

 

再按一下向上的键, 

 

把build 改成 sdist, 

然后回车, 

Python_制作模块_第25张图片 

回车之后,有一些提示信息.

再使用tree命令来查看一下当前目录下文件的情况,回车,

Python_制作模块_第26张图片

回车之后又多了一个目录dist,

同时在这个目录下有一个  .tar.gz  ,.tar.gz 是一个压缩文件,模块已经被打包成了一个压缩包了.

如果想要分享开发完成的模块,就直接把这个压缩包发送给任何对这个模块感兴趣的人就可以.

3. 安装模块压缩包

演示一下,当拿到了模块压缩包之后,怎么样把开发的模块安装到自己的Python环境中,

Python_制作模块_第27张图片

拿到了压缩包之后,只需要在终端中执行两个命令就可以,第1个命令用tar  把压缩包做一个解压缩,

然后呢,使用sudo让Python3这个解释器以root的身份来执行一下setup.py, 并且跟上install 这个参数就可以,

已经成功的制作了一个压缩包,

那现在就使用cd ..  切换到桌面目录,

先用ls查看一下桌面目录的情况,

桌面目录现在只有3个目录,

Python_制作模块_第28张图片

那现在就使用cp 把这个压缩包从  12_发布模块  中复制到桌面下,先敲个 12_发布模块 ,然后敲个dist, 把这个dist 目录下的所有文件复制到当前目录,

回车,然后在使用ls 查看一下,

Python_制作模块_第29张图片

现在这个压缩包已经被复制到桌面了,

要想解压缩应该用tar这个命令,要想解压缩,先传入一个z,跟上xvf, 三个非常固定的选项,在选项后面, 就跟上要解压缩的文件名就可以,

回车,

Python_制作模块_第30张图片

现在这个文件已经被解压缩了,再使用ls-l 查看一下,桌面一下多了一个hm_message-1.0这个目录, 1.0是指定的发布版本.

Python_制作模块_第31张图片

现在再使用CD切换到这个目录,

再来查看一下目录的情况,

Python_制作模块_第32张图片

在这个目录下有个hm_message的目录,还有一个熟悉的setup.py的目录,另外呢,还有一个PKG-INFO,这个文件中保存的是什么内容呢?使用cat命令查看一下,现在回车,

Python_制作模块_第33张图片

现在终端中显示了,包名叫hm_message, 版本1.0, 是由黑马程序员开发的,发送和接收信息模块, 等等,

 这些信息看着眼熟,这些信息实际上就是之前在制作setup这个文件时, 给setup函数传递的参数,

Python_制作模块_第34张图片

如果其他人拿到了我们发布的模块, 查看一下PKG-INFO,就可以知道这个模块是由谁开发的,并且也可以知道怎么样来联系到作者,这个就是PKG-INFO的作用,现在第1步已经做完了,已经把压缩包成功的解压缩了.

那紧接着就来安装一下这个模块,在这里先需要使用sudo以root的身份来执行,让Python3的解释下来执行一下setup.py,并且传入一个install这个参数,现在回车,

回车之后终端中有一系列的行为信息, 整个的模块已经被成功的安装到了Python的系统目录,

Python_制作模块_第35张图片

文件被安装到

那现在就选中完整的目录,点击右键,选择复制,

Python_制作模块_第36张图片

然后呢, 使用ls再来查看一下这个目录的内容,点击粘贴,

Python_制作模块_第37张图片

回车之后,可以在这个目录下看到hm_message这个目录,

这个目录有什么好处呢?现在使用CD点点返回到桌面目录,

先确认一下桌面目录下有没有黑马的这个目录,现在桌面目录下是黑马message-1.0,

Python_制作模块_第38张图片

而刚刚安装的目录是hm_message.

来使用ipython这个交互式的Python解释器,

Python_制作模块_第39张图片

然后呢,使用import来导入一下hm_message,ipython有智能提示的,

Python_制作模块_第40张图片

这个包已经能够成功的被导入了. 现在再来尝试一下黑马message,刚刚在hm_message这个包装,封装了一个发送消息等模块, 封装了一个接收消息的模块,现在来调用一下send函数,并且传入一个hello的参数,回车,

Python_制作模块_第41张图片

之前封装的发送消息的模块已经能够正常使用了.

 那现在再来尝试一下接收消息,回车, 

Python_制作模块_第42张图片

在这一小节中把分享的模块做了一个安装,安装到Python的系统之后,再在ipython中,就可以直接导入这个工具包,

并且直接使用包中对应的模块以及封装的函数了,这个就是把我们开发好的模块分享给别人带来了好处.


 

4. 卸载已经安装过的模块

接下来演示一下,如果某一个安装过的模块不想再继续使用了,怎么样把这个模块从系统中删除.

Python_制作模块_第43张图片

在上一小节安装模块的时候,终端中提示了一个非常长的路径,这个路径并不好记忆,那怎么样能够快速的找到这个路径,来做个演练,在上一小节把hm_message这个包安装完成之后,就可以在ipython3 这个交互式解释器中直接导入这个包, 那现在就使用import 把hm_message这个包做一个导入,

Python_制作模块_第44张图片

导入之后,每一个模块都有一个内置属性__file__, 这个内置属性就可以来查看模块或者包的完整路径,现在回车之后会输出hm_message这个包所在的目录位置,

Python_制作模块_第45张图片

那现在就点击右键选择一下这个目录,

然后呢退出一下ipython,

Python_制作模块_第46张图片

现在先使用CD然后点击右键,切换一下目录,

Python_制作模块_第47张图片

切换过来之后, 先使用ls-l查看一下目录情况,

Python_制作模块_第48张图片

在这个目录下有一个hm_message的目录,

还有一个hm_message这个文件,

而如果想要卸载已经安装的模块,只需要把这两个文件直接删除就可以.

现在就用sudo,把hm_message* 做一个删除,回车,

然后呢,输入一下密码, 现在再回车, 删除完成,

再使用ls-l确认一下,现在hm_message这个目录已经没有了,

Python_制作模块_第49张图片

那现在再使用CD切换回桌面目录,

现在再来敲一下ipython3这个交互式解释器,

Python_制作模块_第50张图片

再来尝试一下使用import看看能不能把hm_message做个导入,回车之后会提示, 系统中没有hm_message这个模块,

Python_制作模块_第51张图片

这就是怎么样把已经安装过的模块从系统中删除.
 

你可能感兴趣的:(python,python)