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)
  1. 在 receive_message 文件中定義一個 receive 函數
def receive():
    print("正在接收信息......")
  1. 在 test_message 文件夾下新建一個 __init__.py 的文件,並且在該文件中指定對外界提供的模塊列表
# 從 當前目錄 導入 模塊列表
from . import send_message
from . import receive_message
  1. 在外部直接導入 hm_message 的包
import test_message
test_message.send_message.send("測試發送信息")
test_message.receive_message.receive()
#正在發送信息:測試發送信息
#正在接收信息......

二、發布模塊

如果希望自己開發的模塊,分享給其他人,可以按照以下步驟操作。

1、制作發布壓縮包步驟

  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",
                  "hm_message.receive_message"])

setup函數的參數的詳細信息,可以參閱官方網站:
https://docs.python.org/2/distutils/apiref.html

  1. 構建模塊
D:\project> python setup.py build

執行完畢后,會發現目錄中多了一個 build 文件夾,里面是關於模塊的一些文件。

  1. 生成發布壓縮包
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

編程的朝聖之路


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM