python的模塊介紹
python的模塊介紹----動手打包共享
哈希大數據致力於互聯網、金融、物流等行業大數據採集、分析、營銷與決策提供綜合解決方案
模塊的定義與生成
python模塊是一個包含定義的變數、函數和類的文件,其後綴名是.py。
特點:模塊可以被其他程序導入,以使用該模塊中定義的類,函數是模塊中對應類的方法,而變數則是類的屬性。
為了防止不同模塊中變數名的重複和衝突,python中通常採用「包」形式即文件目錄結構來管理不同的模塊。只要頂層的目錄文件名不同,就可以防止模塊或模塊中變數或函數名定義相同而衝突的問題。兩個module1在使用中依次為:module_manage,module2.module1;module_manage.module1
如module_manage這個python包,與常規的文件夾所不同的是,需要額外添加一個__init.py__的模塊(文件中可以不添加任何內容)來表明這個文件是python的包。如果使用pycharm編輯器,在新建包時將會自動完成__init.py__的模塊的添加。而且在一個python包中,也可以嵌套其他的python包,方便模塊功能的實現與復用。
模塊的安裝和應用
對於python自帶的模塊可以直接導入使用,而對於第三方模塊的使用,需要在python環境中提前安裝好要使用的模塊。常規的安裝方法直接使用python的pip模塊(在初始化安裝python編輯器的過程中,勾選後已經自動安裝),安裝方式:pip install module_name。卸載方式:pip uninstall module_name。
如pillow這個模塊,是之前已經成功安裝過的,所以再次安裝時則會提示對應的模塊已經存在。因為電腦中有兩個版本的python,因此為了對應管理不同版本中的模塊可以重命名pip,進行不同版本中的模塊安裝。
因此這裡先將其卸載再嘗試安裝一下。卸載方式:
使用『模塊名』==『版本號』的方式在安裝過程中指定模塊的版本號。
安裝好的模塊,使用 import module/from module import name1,name2 可以導入完整模塊或者是模塊的部分屬性,同時為了更方便的使用模塊也可以在導入模塊中另外給模塊進行命名,如在python對數據的處理中經常使用的兩個模塊import numpy as np和import pandas as pd。在python中重複導入同一個模塊,將只會以最後一次導入為主,這樣可以減少查找重複模塊的次數。
import的工作機制
使用import是在環境變數中依次查找是否有對應的python模塊,使用自帶的sys.path功能可以查看模塊所存在的位置。
使用import將會在這些地方查找需要的模塊,如果沒有找到則會報錯。找到的話則會將其編譯成位元組碼也就是.pyc文件。然後會執行模塊中的代碼,並創建其中所需要的對象。
模塊的打包和發布
如果要將完成的模塊進行打包和發布的話,需要進行前期準備工作:以一個dist_module.py模塊為例--該模塊實現的功能是輸出當前時間和指定天數前後的時間,具體代碼為:
在完成模塊下添加一個平行的setup.py的模塊的,使用distutils來發布模塊,在setup.py文件中,添加如下內容:
然後將對應完成的dist_module.py和setup.py模塊放入同一個文件中,該文件夾命名與dist_module.py模塊的名稱一致,即dist_module。目錄結構如下:
前期準備工作完成後,就可以進行模塊的打包和發布了:
在dist_module.py文件下打開命令窗口:否則的話給定setup.py文件的具體位置。然後執行python setup.py sdist。完成模塊的打包工作,為對應的模塊創建一個源碼包。
模塊打包結束後對應的文件目錄變為如下:
然後再將該模塊添加到本地的python包管理空間中,使用python setup.py install。
之後即可在其他文件中導入該模塊進行復用。
此外在windows系統下,在命令窗口中執行python setup.py bdist_wininst 生成.exe的可執行文件。
TAG:全球大搜羅 |