python模組和包

2021-09-01 21:55:12 字數 3741 閱讀 7413

2. 包(package)

3. 發布模組

模組是 python 程式架構的乙個核心概念

1)import 匯入

import 模組名1, 模組名2
import 模組名1

import 模組名2

使用as指定模組的別名

如果模組的名字太長,可以使用as指定模組的名稱,以方便在**中的使用

import 模組名1 as 模組別名
注意:模組別名應該符合大駝峰命名法

2)from...import 匯入

# 從 模組 匯入 某乙個工具

from 模組名1 import 工具名

注意

如果兩個模組,存在同名的函式,那麼後匯入模組的函式,會覆蓋掉先導入的函式

from...import *

# 從 模組 匯入 所有工具

from 模組名1 import *

注意

這種方式不推薦使用,因為函式重名並沒有任何的提示,出現問題不好排查

python的直譯器在匯入模組時,會:

搜尋當前目錄指定模組名的檔案,如果有就直接匯入如果沒有,再搜尋系統目錄

在開發時,給檔案起名,不要和系統的模組檔案重名

python中每乙個模組都有乙個內建屬性__file__可以檢視模組完整路徑

示例

import random

# print(random.__file__)

print(random.randint(0, 10))

注意:如果當前目錄下,存在乙個random.py的檔案,程式就無法正常執行了!

實際開發場景

__name__屬性

__name__屬性可以做到,測試模組的**只在測試情況下被執行,而在被匯入時不會被執行

在很多 python 檔案中都會看到以下格式的**

# 匯入模組

# 定義全域性變數

# 定義類

# 定義函式

# 在**的最下方

def main():

# ...

pass

# 根據 __name__ 判斷是否執行下方**

if __name__ == "__main__":

main()

好處

新建乙個zfx_message在目錄下,新建兩個檔案send_messagereceive_messagesend_message檔案中定義乙個send函式

receive_message檔案中定義乙個receive函式

在外部直接匯入zfx_message的包

# 從 當前目錄 匯入 模組列表

from . import send_message

from . import receive_message

1) 建立 setup.py

from distutils.core import setup

setup(name="***", # 包名

version="x.x.x", # 版本

description="***", # 描述資訊

long_description="***", # 完整描述資訊

author="***", # 作者

author_email="[email protected]", # 作者郵箱

url="www.***.com", # 主頁

py_modules=["***.xx",

"xx.***"])

有關字典引數的詳細資訊,可以參閱官方**:

2) 構建模組

$ python3 setup.py build
3) 生成發布壓縮包

$ python3 setup.py sdist
注意:要製作哪個版本的模組,就使用哪個版本的直譯器執行!

$ tar zxvf zfx_message-1.0.0.tar.gz

$ sudo python3 setup.py install

解除安裝模組

直接從安裝目錄下,把安裝模組的目錄刪除就可以

$ cd /usr/local/lib/python3.5/dist-packages/

$ sudo rm -r zfx_message*

pip是乙個現代的,通用的python包管理工具

安裝和解除安裝命令如下:

# 將模組安裝到 python 2.x 環境

$ sudo pip install pygame

$ sudo pip uninstall pygame

# 將模組安裝到 python 3.x 環境

$ sudo pip3 install pygame

$ sudo pip3 uninstall pygame

mac下安裝ipython

$ sudo pip install ipython
linux下安裝ipython

$ sudo apt install ipython

$ sudo apt install ipython3

python 模組和包 python模組和包

一.模組 python 模組 module 是乙個 python 檔案,以 py 結尾,包含了 python 物件定義和python語句。模組能定義函式,類和變數,模組裡也能包含可執行的 二.匯入模組 1.語法 import模組名from 模組名 import功能名from 模組名 import i...

Python 模組和包

包 模組的一種組織結構 乙個包由多個模組構成,即包含多個.py檔案 1匯入包的幾種形式 1 import module 將module模組中屬性列表的所有屬性匯入執行環境,使用時需要新增模組名稱,例如 module.func 2 from module import attrname,fucnnam...

python 模組和包

1.內建模組 本身就帶有的庫,就叫做python的內建的庫。模組 庫 一些常見的內建模組 os 和作業系統相關 os.path sys 和系統相關 sys.path re 正規表示式 2.第三方模組 非python本身自帶的庫,就是所謂的第三方的庫 3.模組的匯入 import as yy from...