通常來講,咱們會將本身寫的Python模塊與python自帶的模塊分開存放以達到便於維護的目的。那麼如何在Python中添加自定義的模塊呢?python
在解答這個問題以前,咱們首先要明確兩點:python2.7
1.嚴格區分包(package)和文件夾。包的定義就是包含__init__.py的文件夾。若是沒有__init__.py,那麼就是普通的文件夾。ide
2.模塊導入寫法,注意只要包路徑,不要文件夾路徑。spa
Python 運行環境在查找庫文件時是對 sys.path 列表進行遍歷,若是咱們想在運行環境中註冊新的類庫,主要有如下2種方法:code
在sys.path列表中添加新的路徑。it
將庫文件複製到sys.path列表中的目錄裏(如site-packages目錄)。io
咱們能夠經過運行一下代碼來查看sys.pathclass
import sys print sys.path
運行結果:import
['/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', '/Library/Python/2.7/site-packages']
這兩種辦法中第一種比較簡單,並且對環境的影響最小。遍歷
下面咱們來看一下第一種方法具體如何操做:
在python安裝目錄的site-package文件夾中新建pythontab.pth,上面site-package的路徑是:/Library/Python/2.7/site-packages,文件的內容是:須要導入的package所在的文件夾路徑。
這樣,Python 在遍歷已知的庫文件目錄過程當中,若是見到一個 .pth 文件,就會將文件中所記錄的路徑加入到 sys.path 設置中,這樣 .pth 文件說指明的package也就能夠被Python運行環境順利找到, 咱們就能夠像使用內置模塊同樣引入自定義模塊了。
若是缺省的sys.path中沒有含有本身的模塊或包的路徑,咱們也能夠使用sys.path.apend方法來動態加入包路徑。