Python引入多個模塊及包的概念過程解析
實際開發中,一個大型的項目往往需要使用成百上千的 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_messagefrom . import receive_message
6.在外部直接導入 hm_message 的包
import test_messagetest_message.send_message.send('測試發送信息')test_message.receive_message.receive()#正在發送信息:測試發送信息#正在接收信息......
二、發布模塊
如果希望自己開發的模塊,分享給其他人,可以按照以下步驟操作。
1、制作發布壓縮包步驟
創建 setup.py
from distutils.core import setupsetup(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_messagetest_message.send_message.send('測試發送信息')test_message.receive_message.receive()
print(test_message.__file__)# D:pythonlibsite-packagestest_message__init__.py
3、 卸載模塊
根據 包.__file__ 得到的信息,直接從安裝目錄下,把安裝模塊的目錄刪除就可以。
三、安裝第三方模塊
第三方模塊通常是指由知名的第三方團隊開發的,并且被程序員廣泛使用的 Python 包 / 模塊。
在安裝第三方模塊的時候,我們一般使用 pip 工具。
pip 是一個現代的,通用的 Python 包管理工具,提供了對 Python 包的查找、下載、安裝、卸載等功能。
示例:
我們下載 pygame 模塊。
pygame 是一套非常成熟的游戲開發模塊。
# 安裝pip install pygame # 卸載pip uninstall pygame
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: