Python 中引入多个模块,包的概念
實際開發中,一個大型的項目往往需要使用成百上千的 Python 模塊,如果將這些模塊都堆放在一起,勢必不好管理。
而且,使用模塊可以有效避免變量名或函數名重名引發的沖突,但是如果模塊名重復怎么辦呢?
因此,Python提出了包(Package)的概念。
一、包的概念和基本使用
什么是包呢?簡單理解,包就是文件夾,只不過在該文件夾下必須存在一個名為__init__.py 的文件。
每個包的目錄下都必須建立一個__init__.py 的模塊,可以是一個空模塊,可以寫一些初始化代碼,其作用就是告訴 Python 要將該目錄當成包來處理。
包名的命名方式和變量名一致,‘小寫字母’ + ‘_’ 。
使用 ‘import 包名’ 可以一次性導入包中所有的模塊。
示例:
在test_message文件夾下新建一個__init__.py 的文件,并且在該文件中指定對外界提供的模塊列表
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' # 從 當前目錄 導入 模塊列表 from . import send_message from . import receive_message在外部直接導入 hm_message的包
import test_message test_message.send_message.send("測試發送信息") test_message.receive_message.receive() #正在發送信息:測試發送信息 #正在接收信息......二、發布模塊
如果希望自己開發的模塊,分享給其他人,可以按照以下步驟操作。
1、制作發布壓縮包步驟
創建 setup.py
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' 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","hm_message.receive_message"])構建模塊
D:\project> python setup.py build執行完畢后,會發現目錄中多了一個 build 文件夾,里面是關于模塊的一些文件。
生成發布壓縮包
D:\project> python setup.py sdist執行完畢后,發現當前目錄下多了一個文件夾dist,里面有個壓縮文件test_message-1.0.tar.gz。
這里要注意:要制作哪個版本的模塊,就使用哪個版本的解釋器執行!
2、安裝模塊
首先解壓壓縮文件,進入該文件夾。
執行命令:
安裝好,我們就可以測試下是否能夠正常使用包。
記得把原來的包刪了,把下載解壓的包也刪了。這樣才能測試出,這個包是安裝在系統目錄里了,而不是開發目錄里。
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' 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__.py3、 卸載模塊
根據 包.__file__得到的信息,直接從安裝目錄下,把安裝模塊的目錄刪除就可以。
三、安裝第三方模塊
第三方模塊通常是指由知名的第三方團隊開發的,并且被程序員廣泛使用的 Python 包 / 模塊。
在安裝第三方模塊的時候,我們一般使用 pip 工具。
pip 是一個現代的,通用的 Python 包管理工具,提供了對 Python 包的查找、下載、安裝、卸載等功能。
示例:
我們下載 pygame 模塊。
pygame 是一套非常成熟的游戲開發模塊。
# 安裝 pip install pygame # 卸載 pip uninstall pygame總結
以上是生活随笔為你收集整理的Python 中引入多个模块,包的概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何改变 Python 中线程的执行顺序
- 下一篇: Python 的类其实是一个特殊的对象