持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第27天,点击查看活动详情
1. 包
概念:
- 包是一个包含多个模块的特殊目录
- 目录下有一个特殊的文件
__init__.py - 包名的命名方式和变量名一致,小写字母+
_,不要以数字开头 - 优点:使用import包名可以一次性导入包中所有的模块
- init__文件非常特殊,要在外界使用包中的模块,需要在__init.py中指定对外界提供的模块列表
2. 案例演练
- 新建一个message包
- 在目录下,新建两个文件send_message和receive_message
- 在send_message文件中定义一个receive函数
- 在外部直接导入message的包 首先新建好一个python包,并且新建好send_message.py和receive_message.py,具体形式如下图所示:
send_message.py文件中代码如下所示:
def send(text):
print("正在发送 %s..." % text)
receive_message.py文件中代码如下所示:
def receive():
return "这是来自xxx的短信"
init.py文件中代码如下所示:如果想调用包中的模块,就需要在__init__文件中,使用如下语法指定好外界可以调用的模块(逐一导入外界想使用的模块)。
# 从当前目录导入模块列表,.表示当前目录
from . import send_message
from . import receive_message
新建一个导入包.py文件,看看刚才所建的包能否被正常调用,具体代码如下所示:
import message
message.send_message.send("hello")
txt = message.receive_message.receive()
print(txt)
程序运行结果如下图所示:通过下图可以看出能够正常调用包中的方法。
3. 发布模块
如果希望自己开发的模块,分享给其他人,可以按照以下步骤执行 制作发布压缩包步骤:
- 创建setup.py文件:其中的代码比较固定,可以参考如下模板
from distutils.core import setup
setup(name="message", # 包名
version="1.0", # 版本
description="发送和接收消息模块", # 描述信息
long_description="完整的发送和接收消息模块", # 完整描述信息
author="Zidene", # 作者
author_email="xxx@xxx.com", # 作者邮箱
url="www.xxx.com", # 主页
py_modules=["message.send_message", # 把所有要分享的模块填写到这个列表中
"message.receive_message"])
- 构建模块:准备文件(需要在终端中运行)
$ python3 setup.py build
- 生成发布压缩包:将准备好的文件压缩成可以分享的压缩包(需要在终端中运行)
$ python3 setup.py sdist