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处理文本文件中控制字符的方法
Feb 07 Python
Python使用django框架实现多人在线匿名聊天的小程序
Nov 29 Python
Python IDLE入门简介
Dec 08 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
Python SVM(支持向量机)实现方法完整示例
Jun 19 Python
python3中的eval和exec的区别与联系
Oct 10 Python
Django 再谈一谈json序列化
Mar 16 Python
关于Python turtle库使用时坐标的确定方法
Mar 19 Python
Python之变量类型和if判断方式
May 05 Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 Python
Numpy数组的广播机制的实现
Nov 03 Python
python中threading和queue库实现多线程编程
Feb 06 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
把77A收信机改造成收音机
2021/03/02 无线电
elgg 获取文件图标地址的方法
2010/03/20 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
Node.js中使用jQuery的做法
2016/08/17 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
[02:27]2014DOTA2国际邀请赛 VG赛后采访:更大的挑战在等着我们
2014/07/13 DOTA
python获取当前计算机cpu数量的方法
2015/04/18 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
幼儿园教师节活动方案
2014/02/02 职场文书
超市活动计划书
2014/04/24 职场文书
运动会口号大全
2014/06/07 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
公司职员入党自传书
2015/06/26 职场文书
污染环境建议书
2015/09/14 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android