Python模組搜尋及模組安裝,python模組搜尋

來源:互聯網
上載者:User

Python模組搜尋及模組安裝,python模組搜尋

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的四種檔案類型

  • 源檔案(.py)
  • 位元組碼檔案(.pyc)
  • C擴充檔案(Windows: .dll或.pyd檔案 | Linux: .so檔案)
  • 相同變數名的目錄(用於包匯入)

搜尋路徑

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

1. 程式的主目錄(程式當前啟動並執行目錄)

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

3. 標準庫目錄(比如說: C:\Python27\Lib)

4. .pth檔案所在內容(一般放在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.eggimport 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')

模組安裝

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

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環境了



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.