Python模塊搜索概念介紹及模塊安裝方法介紹
【import模塊】
和C中的#include不同,Python中的import語句并不是簡單的把一個文件插入另外一個文件。
導入其實是運行時的運算,程序第一次導入指定文件時,會執(zhí)行以下步驟,
1. 找到模塊文件
2. 編譯成位碼
3. 執(zhí)行模塊中的代碼來創(chuàng)建所定義的模塊
并生成.pyc字節(jié)碼文件,這三個步驟只在程序執(zhí)行時,模塊第一次導入時會進行。之后導入相同的模塊時,會跳過這三個步驟,而只提取內(nèi)存中已加載的模塊對象,速度要快的多。
NOTE:
1. Python把已加載的模塊放在內(nèi)置的sys.modules字典中,在import操作開始時會確認引用的模塊是否已加載。如果想看哪些模塊已加載,可以導入sys,打印sys.modules.keys()
>>> sys.modules.keys()
['heapq', 'functools', 'pyreadline.console.ansi',...,'pyreadline.modes']
2. 可以import的四種文件類型
1.源文件(.py)
2.字節(jié)碼文件(.pyc)
3.C擴展文件(Windows: .dll或.pyd文件 | Linux: .so文件)
4.相同變量名的目錄(用于包導入)
【搜索路徑】
比如說:import math,不需要加路徑和后綴名,系統(tǒng)會自動搜索路徑,按照搜索先后順序,列出模塊搜索路徑.
1. 程序的主目錄(程序當前運行的目錄)
2. PYTHONPATH目錄(在環(huán)境變量里面配置與加到Path中一樣)
3. 標準庫目錄(比如說: C:\Python27\Lib)
4. .pth文件所在內(nèi)容(一般放在Lib\site-packages目錄下,如下:easy-install.pth)
import sys; sys.__plen = len(sys.path)
./setuptools-0.6c11-py2.7.egg
./py-1.4.26-py2.7.egg
./sphinx-1.3b1-py2.7.egg
./colorama-0.3.2-py2.7.egg
./babel-1.3-py2.7.egg
./snowballstemmer-1.2.0-py2.7.egg
./docutils-0.12-py2.7.egg
./pygments-2.0.1-py2.7.egg
./jinja2-2.7.3-py2.7.egg
./six-1.8.0-py2.7.egg
./pytz-2014.9-py2.7.egg
./markupsafe-0.23-py2.7.egg
./pyzmq-14.4.1-py2.7-win-amd64.egg
./tornado-4.0.2-py2.7-win-amd64.egg
./backports.ssl_match_hostname-3.4.0.2-py2.7.egg
./certifi-14.05.14-py2.7.egg
./egg-0.2.0-py2.7.egg
./chicken-0.1.0-py2.7.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)
而所有這些路徑可以通過sys.path來看到
>>> import sys
>>> sys.path
['', 'C:\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg', ...,'C:\\Python27\\lib\\site-packages\\wx-3.0-msw']
臨時的工作路徑加載,可以用
>>> sys.path.append('d:\\test')
>>> sys.path
['', 'C:\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg', 'C:\\Python27\\lib\\, 'd:\\test']
>>> sys.path.remove('d:\\test')
【模塊安裝】
但上面的方法只是臨時性的,一旦退出程序或當前交互環(huán)境,就失效。要想永久生效就必須讓其加入到上述目錄中
Perl的強大在于CPAN,可喜的是,Python也開始有類似的技術及功能,比如說pip,可以用包括pip來安裝模塊。
1. 自寫模塊,直接拷貝到上述任意目錄
2. 第三方模塊,執(zhí)行python setup.py install安裝
3. 用easy_install安裝
下載ez_setup.py文件
執(zhí)行: python ez_setup.py
安裝所要安裝的模塊: easy_install py
4. 用pip安裝
先用easy_install pip命令來安裝pip
再用pip install Markdown來安裝具體模塊,假設模塊名為: Markdown
5. 用第三方模塊管理庫(比如說Canopy就可以管理科學計算模塊,可惜很多需要收費)

用此工具,就可以安裝ipython環(huán)境了

相關文章
使用Python進行數(shù)據(jù)清洗與存儲的基本方法
在爬蟲數(shù)據(jù)獲取完成后,數(shù)據(jù)往往是“原始”的,不適合直接使用,清洗和存儲是將爬取到的原始數(shù)據(jù)轉(zhuǎn)化為有用信息的關鍵步驟,本文將系統(tǒng)地介紹 Python 中進行數(shù)據(jù)清洗與存儲的基本方法,幫助新手理解如何處理爬蟲數(shù)據(jù),使其更加適合分析和使用,需要的朋友可以參考下2024-11-11
Python實現(xiàn)系統(tǒng)交互(subprocess)
我們幾乎可以在任何操作系統(tǒng)上通過命令行指令與操作系統(tǒng)進行交互,本文實現(xiàn)了Python系統(tǒng)交互,具有一定的參考價值,感興趣的可以了解一下2021-07-07
Python連接SQL?server數(shù)據(jù)庫并進行簡單查詢的操作詳解
SQL?Server是微軟推出的重量級的數(shù)據(jù)庫,本文將給大家詳細介紹了一下Python連接SQL?server數(shù)據(jù)庫詳細流程,并通過代碼示例給大家講解的非常清除,具有一定的參考價值,需要的朋友可以參考下2024-02-02
python數(shù)學模塊(math/decimal模塊)
這篇文章主要介紹了python數(shù)學模塊(math/decimal模塊),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09

