程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Python模塊搜索概念介紹及模塊安裝方法介紹

Python模塊搜索概念介紹及模塊安裝方法介紹

編輯:更多關於編程

       這篇文章主要介紹了Python模塊搜索概念介紹及模塊安裝方法介紹,本文詳細講解了import模塊的運作原理,搜索路徑的過程以及模塊安裝的多種方法,需要的朋友可以參考下

      【import模塊】

      和C中的#include不同,Python中的import語句並不是簡單的把一個文件插入另外一個文件。

      導入其實是運行時的運算,程序第一次導入指定文件時,會執行以下步驟,

      1. 找到模塊文件

      2. 編譯成位碼

      3. 執行模塊中的代碼來創建所定義的模塊

      並生成.pyc字節碼文件,這三個步驟只在程序執行時,模塊第一次導入時會進行。之後導入相同的模塊時,會跳過這三個步驟,而只提取內存中已加載的模塊對象,速度要快的多。

      NOTE:

      1. Python把已加載的模塊放在內置的sys.modules字典中,在import操作開始時會確認引用的模塊是否已加載。如果想看哪些模塊已加載,可以導入sys,打印sys.modules.keys()

      復制代碼 代碼如下:

      >>> sys.modules.keys()

      ['heapq', 'functools', 'pyreadline.console.ansi',...,'pyreadline.modes']

      2. 可以import的四種文件類型

      1.源文件(.py)

      2.字節碼文件(.pyc)

      3.C擴展文件(Windows: .dll或.pyd文件 | Linux: .so文件)

      4.相同變量名的目錄(用於包導入)

      【搜索路徑】

      比如說:import math,不需要加路徑和後綴名,系統會自動搜索路徑,按照搜索先後順序,列出模塊搜索路徑.

      1. 程序的主目錄(程序當前運行的目錄)

      2. PYTHONPATH目錄(在環境變量裡面配置與加到Path中一樣)

      3. 標准庫目錄(比如說: C:Python27Lib)

      4. .pth文件所在內容(一般放在Libsite-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:Python27libsite-packagessetuptools-0.6c11-py2.7.egg', ...,'C:Python27libsite-packageswx-3.0-msw']

      臨時的工作路徑加載,可以用

       代碼如下:

      >>> sys.path.append('d:test')

      >>> sys.path

      ['', 'C:Python27libsite-packagessetuptools-0.6c11-py2.7.egg', 'C:Python27lib, 'd:test']

      >>> sys.path.remove('d:test')

      【模塊安裝】

      但上面的方法只是臨時性的,一旦退出程序或當前交互環境,就失效。要想永久生效就必須讓其加入到上述目錄中

      Perl的強大在於CPAN,可喜的是,Python也開始有類似的技術及功能,比如說pip,可以用包括pip來安裝模塊。

      1. 自寫模塊,直接拷貝到上述任意目錄

      2. 第三方模塊,執行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. 用第三方模塊管理庫(比如說Canopy就可以管理科學計算模塊,可惜很多需要收費)

      用此工具,就可以安裝ipython環境了

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved