Python引入多个模块及包的概念过程解析


Posted in Python onSeptember 21, 2020

实际开发中,一个大型的项目往往需要使用成百上千的 Python 模块,如果将这些模块都堆放在一起,势必不好管理。

而且,使用模块可以有效避免变量名或函数名重名引发的冲突,但是如果模块名重复怎么办呢?

因此,Python提出了包(Package)的概念。

一、包的概念和基本使用

什么是包呢?简单理解,包就是文件夹,只不过在该文件夹下必须存在一个名为“__init__.py” 的文件。

每个包的目录下都必须建立一个 __init__.py 的模块,可以是一个空模块,可以写一些初始化代码,其作用就是告诉 Python 要将该目录当成包来处理。

包名的命名方式和变量名一致,'小写字母' + '_' 。

使用 'import 包名' 可以一次性导入包中所有的模块。

示例:

1.新建一个 test_message 的文件夹

2.在目录下,新建两个文件 send_message.py 和 receive_message.py

3.在 send_message 文件中定义一个 send 函数

def send(msg):
print("正在发送信息:%s" % msg)

4.在 receive_message 文件中定义一个 receive 函数

def receive():
print("正在接收信息......")

5.在 test_message 文件夹下新建一个 __init__.py 的文件,并且在该文件中指定对外界提供的模块列表

# 从 当前目录 导入 模块列表
from . import send_message
from . import receive_message

6.在外部直接导入 hm_message 的包

import test_message
test_message.send_message.send("测试发送信息")
test_message.receive_message.receive()
#正在发送信息:测试发送信息
#正在接收信息......

二、发布模块

如果希望自己开发的模块,分享给其他人,可以按照以下步骤操作。

1、制作发布压缩包步骤

创建 setup.py

from distutils.core import setup
setup(name="test_message", # 包名
   version="1.0", # 版本
   description="发送和接收消息模块", # 描述信息
   long_description="完整的发送和接收消息模块", # 完整描述信息
   author="小名叫小明", # 作者
   author_email="328122186@qq.com", # 作者邮箱
   url="nothing", # 主页
   py_modules=["hm_message.send_message",

setup函数的参数的详细信息,可以参阅官方网站:

https://docs.python.org/2/distutils/apiref.html

构建模块

D:\project> python setup.py build

执行完毕后,会发现目录中多了一个 build 文件夹,里面是关于模块的一些文件。

生成发布压缩包

D:\project> python setup.py sdist

执行完毕后,发现当前目录下多了一个文件夹dist,里面有个压缩文件 test_message-1.0.tar.gz。

这里要注意:要制作哪个版本的模块,就使用哪个版本的解释器执行!

2、安装模块

首先解压压缩文件,进入该文件夹。
执行命令:

python setup.py install

安装好,我们就可以测试下是否能够正常使用包。

记得把原来的包删了,把下载解压的包也删了。这样才能测试出,这个包是安装在系统目录里了,而不是开发目录里。

import test_message
test_message.send_message.send("测试发送信息")
test_message.receive_message.receive()

print(test_message.__file__)
# D:\python\lib\site-packages\test_message\__init__.py

3、 卸载模块

根据 包.__file__ 得到的信息,直接从安装目录下,把安装模块的目录删除就可以。

三、安装第三方模块

第三方模块通常是指由知名的第三方团队开发的,并且被程序员广泛使用的 Python 包 / 模块。

在安装第三方模块的时候,我们一般使用 pip 工具。

pip 是一个现代的,通用的 Python 包管理工具,提供了对 Python 包的查找、下载、安装、卸载等功能。

示例:

我们下载 pygame 模块。

pygame 是一套非常成熟的游戏开发模块。

# 安装
pip install pygame
# 卸载
pip uninstall pygame

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用实例说明python的*args和**kwargs用法
Nov 01 Python
详解Python中使用base64模块来处理base64编码的方法
Jul 01 Python
python中星号变量的几种特殊用法
Sep 07 Python
Python模拟随机游走图形效果示例
Feb 06 Python
django允许外部访问的实例讲解
May 14 Python
使用pandas批量处理矢量化字符串的实例讲解
Jul 10 Python
Python Pexpect库的简单使用方法
Jan 29 Python
python selenium 执行完毕关闭chromedriver进程示例
Nov 15 Python
Python开发之基于模板匹配的信用卡数字识别功能
Jan 13 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 Python
python执行js代码的方法
May 13 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
Sep 21 #Python
简单了解python关键字global nonlocal区别
Sep 21 #Python
PIP和conda 更换国内安装源的方法步骤
Sep 21 #Python
python 字符串格式化的示例
Sep 21 #Python
基于python判断字符串括号是否闭合{}[]()
Sep 21 #Python
属性与 @property 方法让你的python更高效
Sep 21 #Python
Python如何在bool函数中取值
Sep 21 #Python
You might like
基于mysql的论坛(4)
2006/10/09 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
js图片处理示例代码
2014/05/12 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
2020/04/14 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
微信跳一跳辅助python代码实现
2018/01/05 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
python字符串Intern机制详解
2019/07/01 Python
python实现共轭梯度法
2019/07/03 Python
python能做什么 python的含义
2019/10/12 Python
python用requests实现http请求代码实例
2019/10/31 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
python 递归相关知识总结
2021/03/03 Python
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
工作推荐信范文
2014/05/10 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
升职自我推荐信范文
2015/03/25 职场文书
商场收银员岗位职责
2015/04/07 职场文书
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL