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_message
和receive_message
在send_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...