Pyhton模塊和包相關(guān)知識(shí)總結(jié)
一、模塊
每一個(gè)以擴(kuò)展名 py 結(jié)尾額 Python 源代碼文件都是一個(gè)模塊模塊名 同樣也是一個(gè)標(biāo)識(shí)符,需要符合標(biāo)識(shí)符的命名規(guī)則在模塊中定義的 全局變量、函數(shù)、類 都是提供給外接直接使用的工具 模塊的兩種導(dǎo)入方式
1)import 導(dǎo)入
import 模塊名1,模塊名2
或
import 模塊名1 import 模塊名2
導(dǎo)入之后
- 通過 模塊名. 使用 模塊提供的工具——全局變量、函數(shù)、類
使用 as 指定模塊的別名
import 模塊名1 as 模塊別名
注意:模塊別名應(yīng)該 符合 大駝峰命名法
2)from…import 導(dǎo)入
- 如果希望從某一個(gè)模塊中,導(dǎo)入 部分工具,就可以使用 from … import 的方式
- import 模塊名 是一次性把模塊中 所有工具全部導(dǎo)入,并且通過 模塊名/別名 訪問
# 從模塊 導(dǎo)入 某一個(gè)工具 from 模塊1 import 工具名
導(dǎo)入之后
- 不需要通過 模塊名.
- 可以直接使用 模塊提供的工具——全局變量、函數(shù)、類
注意:
如果 兩個(gè)模塊,存在同名的函數(shù),那么后導(dǎo)入模塊的函數(shù),會(huì)覆蓋掉先導(dǎo)入的函數(shù)
- 如果代碼沖突,可以使用 as 關(guān)鍵 給其中一個(gè)模塊起一個(gè)別名
from…import * (不推薦使用)
# 從模塊 導(dǎo)入 所有工具 from 模塊名1 import *
二、模塊的搜索順序
Python 的解釋器在 導(dǎo)入模塊時(shí),會(huì):
1.搜索 當(dāng)前目錄 指定模塊名的文件,如果有就直接導(dǎo)入
2.如果沒有,再搜索 系統(tǒng)目錄
注意:在給文件起名時(shí),不要和系統(tǒng)的模塊文件 重名
Python 中每一個(gè)模塊都有一個(gè)內(nèi)置屬性 __file__ 可以查看模塊的 完整路徑
三、使模塊下方的測試代碼在導(dǎo)入時(shí)不會(huì)執(zhí)行
- 在導(dǎo)入文件時(shí),文件中所有沒有任何縮進(jìn)的代碼 都會(huì)被執(zhí)行一遍
__name__屬性
- __name__屬性 可以做到,測試模塊的代碼只在測試情況下被運(yùn)行,而在被導(dǎo)入時(shí)不會(huì)被執(zhí)行
- __name__ 是 Python 的一個(gè)內(nèi)置屬性,記錄著一個(gè)字符串
- 如果 是被其他文件導(dǎo)入的,__name__就是 模塊名
- 如果是當(dāng)前執(zhí)行的程序 __name__是 __main__
示例:
# 導(dǎo)入模塊 # 定義全局變量 # 定義類 # 定義函數(shù) # 在代碼的最下方 def main(): # ... pass # 根據(jù) __name__判斷是否執(zhí)行下方代碼 if __name__ == '__main__': main()
四、包
- 包是一個(gè) 包含多個(gè)模塊的 特殊目錄目錄
- 下有一個(gè) 特殊的文件 __init__.py
- 使用 import 包名 可以一次性導(dǎo)入 包 中所有的模塊
__init__.py
- 要在外界使用 包 中的模塊,需要在 __init__.py 中指定 對(duì)外界提供的模塊列表
# 從 當(dāng)前目錄 導(dǎo)入 模塊列表 from . import 模塊名 from . import 模塊名
例如:
五、發(fā)布模塊
制作發(fā)布?jí)嚎s包步驟
1)創(chuàng)建 setup.py
setup.py 的文件
from distutils.core import setup setup(name="vvcat_package", # 包名 version="1.0", # 版本 description="用來測試", # 描述信息 long_description="用來測試如何發(fā)布?jí)嚎s包", # 完整描述信息 author="vvcat", # 作者 author_email="206647497@qq.com", #作者郵箱 url="https://blog.csdn.net/qq_44989881?t=1", # 主頁 py_modules=["vvcat_package.test1", "vvcat_package.test2"]) # 包中的模塊
有關(guān)字典參數(shù)的詳細(xì)信息,可以參閱官方網(wǎng)站:
https://docs.python.org/2/distutils/apiref.html
先cd到setup.py 所在的目錄 ,通過 ls -l 命令 可以看到有以下幾個(gè)文件
2)構(gòu)建模塊
python3 setup.py build
通過 tree
命令可以看到當(dāng)前目錄結(jié)構(gòu)
如果沒有 tree 命令,可以通過以下操作,安裝
sudo apt-get install tree
使用 tree
命令 后會(huì)看到
使用 python3 setup.py build
命令 生成的 build 文件夾中的內(nèi)容
3)生成發(fā)布?jí)嚎s包
python3 setup.py sdist
六、安裝模塊
tar -zxvf 包名-1.0.tar.gz sudo python3 setup.py install
使用 tar -zxvf vvcat_package-1.0.tar.gz 命令后
會(huì)出現(xiàn) vvcat_package-1.0文件夾
vvcat_package-1.0文件夾中的內(nèi)容
使用 cat PKG-INFO
命令可以查看到 PKG-INFO文件中的內(nèi)容
使用 sudo python3 setup.py install
命令安裝vvcat_package模塊
查看 vvcat_package模塊安裝后所在的目錄,會(huì)看到以下幾個(gè)文件:
vvcat_package vvcat_package-1.0.egg-info
通過 ipython3 對(duì)安裝的模塊進(jìn)行測試
七、卸載模塊
直接從安裝目錄下,把安裝模塊的目錄 刪除就可以
cd /usr/local/lib/python3.6/dist-package/ sudo rm -r vvcat_package*
根據(jù)以上兩條命令進(jìn)行如下操作:
先查看模塊 安裝的目錄
# __file__ 用來查看模塊所在的目錄 vvcat_package.__file__
通過 cd 命令 到 dist-packages 目錄下
最后使用 sudo rm -r vvcat_package*
命令便可以卸載掉 安裝的 vvcat_package模塊
以下是刪除后只剩下 vvcat_package-1.0.egg-info 文件
當(dāng)再次使用 ipython3 調(diào)用該模塊時(shí),會(huì)顯示沒有該模塊。
八、pip 安裝第三方模塊
pip 是一個(gè)現(xiàn)代的,通用的 Python 包管理工具提供了對(duì) Python 包的查找、下載、安裝、卸載等功能
安裝和卸載命令如下:
# 將模塊安裝到 Python 3.x 環(huán)境 sudo pip3 install pygame sudo pip3 uninstall pygame
在 Mac 下安裝 iPython
sudo pip install ipython
在 Linux 下安裝 iPython
sudo apt install ipython3
到此這篇關(guān)于Pyhton模塊和包相關(guān)知識(shí)總結(jié)的文章就介紹到這了,更多相關(guān)Pyhton模塊和包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 在python中實(shí)現(xiàn)導(dǎo)入一個(gè)需要傳參的模塊
- python文件目錄操作之os模塊
- Python使用scapy模塊發(fā)包收包
- Python基礎(chǔ)之hashlib模塊詳解
- Python collections模塊的使用技巧
- Python使用random模塊實(shí)現(xiàn)擲骰子游戲的示例代碼
- Python爬蟲基礎(chǔ)之requestes模塊
- python常見模塊與用法
- python中sys模塊的介紹與實(shí)例
- Python中os模塊的簡單使用及重命名操作
- python基于concurrent模塊實(shí)現(xiàn)多線程
- python xlwt模塊的使用解析
相關(guān)文章
Python輪播圖與導(dǎo)航欄功能的實(shí)現(xiàn)流程全講解
這篇文章主要介紹了Python項(xiàng)目輪播圖功能實(shí)現(xiàn)和導(dǎo)航欄的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09python如何用matplotlib創(chuàng)建三維圖表
這篇文章主要介紹了python如何在matplotlib中創(chuàng)建三維圖表,幫助大家更好的利用python進(jìn)行數(shù)據(jù)分析,感興趣的朋友可以了解下2021-01-01python機(jī)器學(xué)習(xí)deepchecks庫訓(xùn)練檢查模型特點(diǎn)探索
這篇文章主要介紹了python機(jī)器學(xué)習(xí)deepchecks庫的訓(xùn)練檢查模型特點(diǎn)實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01詳解關(guān)于Django中ORM數(shù)據(jù)庫遷移的配置
這篇文章主要介紹了詳解關(guān)于Django中ORM數(shù)據(jù)庫遷移的配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10python用tkinter實(shí)現(xiàn)一個(gè)gui的翻譯工具
這篇文章主要介紹了python用tkinter實(shí)現(xiàn)一個(gè)gui的翻譯工具,幫助大家更好的理解和使用python,感興趣的朋友可以了解下 +2020-10-10Python日期格式和字符串格式相互轉(zhuǎn)換的方法
這篇文章主要介紹了Python日期格式和字符串格式相互轉(zhuǎn)換的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02