模塊的認識
模塊,用一砣代碼實現了某個功能的代碼集合。
類似于函數式編程和面向過程編程,函數式編程則完成一個功能,其他代碼用來調用即可,提供了代碼的重用性和代碼間的耦合。而對于一個復雜的功能來,可能需要多個函數才能完成(函數又可以在不同的.py文件中),n個 .py 文件組成的代碼集合就稱為模塊。
如:os 是系統相關的模塊;file是文件操作相關的模塊
模塊分為三種:
自定義模塊
內置模塊
第三方開源模塊
自定義模塊
1、定義模塊
2、導入模塊
Python之所以應用越來越廣泛,在一定程度上也依賴于其為程序員提供了大量的模塊以供使用,如果想要使用模塊,則需要導入。導入模塊有一下幾種方法:
1 import module
2 from module.xx.xx import xx
3 from module.xx.xx import xx as rename
4 from module.xx.xx import *
導入模塊其實就是告訴Python解釋器去解釋那個py文件
導入一個py文件,解釋器解釋該py文件
導入一個包,解釋器解釋該包下的 __init__.py 文件
那么問題來了,導入模塊時是根據那個路徑作為基準來進行的呢?即:sys.path
1 import sys
2 print sys.path
結果:
1 [‘/home/zh/PycharmProjects/s12/day1‘, ‘/usr/local/lib/python2.7/dist-packages/setuptools-18.1-py2.7.egg‘, ‘/usr/local/lib/python2.7/dist-packages/pip-7.1.0-py2.7.egg‘, ‘/usr/local/lib/python2.7/dist-packages/Django-1.8.16-py2.7.egg‘, ‘/home/zh/PycharmProjects/s12‘, ‘/usr/lib/python2.7‘, ‘/usr/lib/python2.7/plat-x86_64-linux-gnu‘, ‘/usr/lib/python2.7/lib-tk‘, ‘/usr/lib/python2.7/lib-old‘, ‘/usr/lib/python2.7/lib-dynload‘, ‘/usr/local/lib/python2.7/dist-packages‘, ‘/usr/lib/python2.7/dist-packages‘, ‘/usr/lib/python2.7/dist-packages/PILcompat‘, ‘/usr/lib/python2.7/dist-packages/gtk-2.0‘, ‘/usr/lib/python2.7/dist-packages/ubuntu-sso-client‘]
如果我們要添加自己的搜索目錄,有兩種方法:
一是直接修改sys.path,添加要搜索的目錄:
>>> importsys
>>> sys.path.append(‘/Users/zh/my_py_scripts‘)
這種方法是在運行時修改,運行結束后失效。
第二種方法是設置環境變量PYTHONPATH,該環境變量的內容會被自動添加到模塊搜索路徑中。設置方式與設置Path環境變量類似。注意只需要添加你自己的搜索路徑,Python自己本身的搜索路徑不受影響。
通過os模塊可以獲取各種目錄,例如:
1 importsys
2 importos
3
4 pre_path = os.path.abspath(‘../‘)
5 sys.path.append(pre_path)
第三方開源模塊
1、下載安裝
下載安裝有兩種方式:
方法一:利用源碼安裝
在 github.com 網站可以下載第三方庫的源碼(或者其它途徑),得到源碼之后,在本地安裝。
一般情況,得到的碼格式大概都是 zip 、 tar.zip、 tar.bz2 格式的壓縮包。解壓這些包,進入其文件夾,通常會看見一個 setup.py 的文件。如果是 Linux 或者 Mac(我是用 ubuntu,特別推薦哦),就在這里運行 shell,執行命令:
Python setup.py install
如果用的是 windows,需要打開命令行模式,執行上述指令即可。
如此,就能把這個第三庫安裝到系統里。具體位置,要視操作系統和你當初安裝 Python 環境時設置的路徑而定。默認條件下,windows 是在?C:\Python2.7\Lib\site-packages,Linux 在?/usr/local/lib/python2.7/dist-packages(這個只是參考,不同發行版會有差別,具體請讀者根據自己的操作系統,自己找找),Mac 在?/Library/Python/2.7/site-packages。
有安裝就要有卸載,卸載所安裝的庫非常簡單,只需要到相應系統的 site-packages 目錄,直接刪掉庫文件即卸載。
1 下載源碼
2 解壓源碼
3 進入目錄
4 編譯源碼 python setup.py build
5 安裝源碼 python setup.py install
注:在使用源碼安裝時,需要使用到gcc編譯和python開發環境,所以,需要先執行:
1 yum install gcc
2 yum install python-devel
3 或
4 apt-get python-dev
安裝成功后,模塊會自動安裝到 sys.path 中的某個目錄中,如:
1 /usr/lib/python2.7/site-packages/
方法二:pip
用源碼安裝,不是我推薦的,我推薦的是用第三方庫的管理工具安裝。有一個網站,是專門用來存儲第三方庫的,所有在這個網站上的,都能用 pip 或者 easy_install 這種安裝工具來安裝。這個網站的地址:https://pypi.Python.org/pypi
首先,要安裝 pip(Python 官方推薦這個,我當然要順勢了,所以,就只介紹并且后面也只使用這個工具)。如果讀者跟我一樣,用的是 ubuntu 或者其它某種 Linux,基本不用這個操作,在安裝操作系統的時候已經默認把這個東西安裝好了(這還不是用 ubuntu 的理由嗎?)。如果因為什么原因,沒有安裝,可以使用如下方法:
Debian andUbuntu:
sudo apt-get install Python-pip
Fedora andCentOS:
sudo yum install python-pip
當然,也可以這里下載文件get-pip.py,然后執行?Python get-pip.py?來安裝。這個方法也適用于 windows。
pip 安裝好了。如果要安裝第三方庫,只需要執行?pip install XXXXXX(XXXXXX 代表第三方庫的名字)即可。
當第三方庫安裝完畢,接下來的使用就如同前面標準庫一樣。
2、導入模塊
同自定義模塊中導入的方式
3、實例:安裝第三方模塊 paramiko
paramiko是一個用于做遠程控制的模塊,使用該模塊可以對遠程服務器進行命令或文件操作,值得一說的是,fabric和ansible內部的遠程管理就是使用的paramiko來現實。
1 #pycrypto,由于 paramiko 模塊內部依賴pycrypto,所以先下載安裝pycrypto
2
3 #下載安裝 pycrypto
4 wget http://files.cnblogs.com/files/wupeiqi/pycrypto-2.6.1.tar.gz5 tar -xvf pycrypto-2.6.1.tar.gz6 cd pycrypto-2.6.1
7 python setup.py build8 python setup.py install9
10 #進入python環境,導入Crypto檢查是否安裝成功
11
12 #下載安裝 paramiko
13 wget http://files.cnblogs.com/files/wupeiqi/paramiko-1.10.1.tar.gz14 tar -xvf paramiko-1.10.1.tar.gz15 cd paramiko-1.10.1
16 python setup.py build17 python setup.py install18
19 #進入python環境,導入paramiko檢查是否安裝成功
原文:http://www.cnblogs.com/zhenghaonihao/p/6227453.html