Python模塊搜索及模塊安裝
來源:程序員人生 發(fā)布時間:2015-01-14 09:19:15 閱讀次數(shù):2705次
【import模塊】
和C中的#include不同,Python中的import語句并不是簡單的把1個文件插入另外1個文件。
導(dǎo)入實際上是運行時的運算,程序第1次導(dǎo)入指定文件時,會履行以下步驟,
1. 找到模塊文件
2. 編譯成位碼
3. 履行模塊中的代碼來創(chuàng)建所定義的模塊
并生成.pyc字節(jié)碼文件,這3個步驟只在程序履行時,模塊第1次導(dǎo)入時會進行。以后導(dǎo)入相同的模塊時,會跳過這3個步驟,而只提取內(nèi)存中已加載的模塊對象,速度要快的多。
NOTE:
1. Python把已加載的模塊放在內(nèi)置的sys.modules字典中,在import操作開始時會確認援用的模塊是不是已加載。如果想看哪些模塊已加載,可以導(dǎo)入sys,打印sys.modules.keys()
>>> sys.modules.keys()
['heapq', 'functools', 'pyreadline.console.ansi',...,'pyreadline.modes']
2. 可以import的4種文件類型
- 源文件(.py)
- 字節(jié)碼文件(.pyc)
- C擴大文件(Windows: .dll或.pyd文件 | Linux: .so文件)
- 相同變量名的目錄(用于包導(dǎo)入)
【搜索路徑】
比如說:import math,不需要加路徑和后綴名,系統(tǒng)會自動搜索路徑,依照搜索前后順序,列出模塊搜索路徑.
1. 程序的主目錄(程序當(dāng)前運行的目錄)
2. PYTHONPATH目錄(在環(huán)境變量里面配置與加到Path中1樣)
3. 標(biāo)準(zhǔn)庫目錄(比如說: C:Python27Lib)
4. .pth文件所在內(nèi)容(1般放在Libsite-packages目錄下,以下:easy-install.pth)
import sys; sys.__plen = len(sys.path)
./setuptools-0.6c11-py2.7.egg
./py⑴.4.26-py2.7.egg
./sphinx⑴.3b1-py2.7.egg
./colorama-0.3.2-py2.7.egg
./babel⑴.3-py2.7.egg
./snowballstemmer⑴.2.0-py2.7.egg
./docutils-0.12-py2.7.egg
./pygments⑵.0.1-py2.7.egg
./jinja2⑵.7.3-py2.7.egg
./six⑴.8.0-py2.7.egg
./pytz⑵014.9-py2.7.egg
./markupsafe-0.23-py2.7.egg
./pyzmq⑴4.4.1-py2.7-win-amd64.egg
./tornado⑷.0.2-py2.7-win-amd64.egg
./backports.ssl_match_hostname⑶.4.0.2-py2.7.egg
./certifi⑴4.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:Python27libsite-packagessetuptools-0.6c11-py2.7.egg', ...,'C:Python27libsite-packageswx⑶.0-msw']
臨時的工作路徑加載,可以用
>>> sys.path.append('d: est')
>>> sys.path
['', 'C:Python27libsite-packagessetuptools-0.6c11-py2.7.egg', 'C:Python27lib, 'd: est']
>>> sys.path.remove('d: est')
【模塊安裝】
但上面的方法只是臨時性的,1旦退出程序或當(dāng)前交互環(huán)境,就失效。要想永久生效就必須讓其加入到上述目錄中
Perl的強大在于CPAN,可喜的是,Python也開始有類似的技術(shù)及功能,比如說pip,可以用包括pip來安裝模塊。
1. 自寫模塊,直接拷貝到上述任意目錄
2. 第3方模塊,履行python setup.py install安裝
3. 用easy_install安裝
- 下載ez_setup.py文件
- 履行: python ez_setup.py
- 安裝所要安裝的模塊: easy_install py
4. 用pip安裝
- 先用easy_install pip命令來安裝pip
- 再用pip install Markdown來安裝具體模塊,假定模塊名為: Markdown
5. 用第3方模塊管理庫(比如說Canopy就能夠管理科學(xué)計算模塊,惋惜很多需要收費)

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

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈