pip install module from local file

今天我想更新我們原先的nester module,讓我在shell裡可以使用它。我先修改setup.py裡的version。然後我是用 python.exe setup.py sdist 建立需要的發佈檔案。接著要進行安裝,但是不曉得是不是更新pip的緣故,我已經無法使用 python.exe setup.py install 。執行這行指令的話會出現錯誤:

叫我改用pip來安裝。於是我用上一篇blog寫得,使用 py -m pip install nester ,結果發現

它一直安裝1.0.0版,但是我最新版已經在setup.py裡宣告是1.3.0版,可見這並不是我要安裝的版本。

我又再次到PyPI的說明網頁[1]去,這次仔細地閱讀,發現使用 py -m pip install 是直接從PyPI下載來安裝,但是我需要的是能夠直接用我電腦裡的檔案安裝。依照[1]的說明,其實pip是可以直接指定安裝檔案的。用法很簡單,只要直接指定該檔案的路徑就可以了。以我這裡的例子就是 py -m pip install nester-1.3.0.tar.gz 。這裡是因為我已經移到該安裝檔案的資料夾裡,所以我很簡單的直接在install後面接上檔案名稱。

可以看出來已經安裝成功。原本以為這樣就可以,結果發現shell還是執行舊的版本。依照以往的經驗,這代表系統中存在著舊版本並沒有被刪除,而且還是被優先使用。於是就要知道這個檔案藏在哪裡。

關於這個問題,可以在shell鍵入 import sys; sys.path 就可以列出所有python參照的系統路徑。於是我就到每個路徑裡去找出舊版的nester.py並刪除,就能夠成功地參照到新版檔案了。

這個網誌中的熱門文章

Upload Python Project to PyPI