使用 setuptools 主要是用於構建並分發包,但是我們仍然需要知道如何使用它們直接從專案原始碼安裝包,因為在向 PyPI 提交包之前,我們需要測試一下自己的打包程式碼是否正常工作,而最簡單的測試方法就是安裝它。
如果你將壞的軟體包傳送到倉庫中,那麼需要增加版本號才能重新上傳。因此,在最終發行版之前測試打包程式碼是否被正確打包,可以避免不必要的版本號增加,當然也可以節省時間。
此外,在同時處理多個相關的包時,使用 setuptools 直接從自己的原始碼安裝有時也是必要的。
Python安裝和解除安裝程式包
通過執行
Python setup.py install
命令(執行此命令時,所在目錄需位於包目錄下),可以將包安裝到 Python 環境中。如果之前沒有構建過的話,它會嘗試構建包,然後將結果注入到 Python 樹中。
如果提供了原始碼發行版,那麼可以在臨時資料夾中將其解壓,然後用這個命令安裝。除此之外,install 命令還將安裝在 install_requires 後設資料中定義的依賴,這是通過檢視 Python 包索引上的包來完成的。
除了使用 setup.py 指令碼安裝包,還可以使用 pip 命令,它是 PyPA 推薦的工具,即使在本地環境為了開發而安裝時,也可以使用它。
使用 pip 命令從本地原始碼中安裝一個包,可以執行下面這個命令:
pip install 包路徑
值得一提的是,setuptools 和 distutils 都沒有 uninstall (解除安裝)命令,而使用 pip 可以解除安裝任何 Python 包,命令格式如下:
pip uninstall 包名
注意,在系統級的包上嘗試解除安裝操作可能很危險,這也是為什麼使用虛擬環境進行開發很重要的另一個原因。
Python開發過程中安裝程式包
使用 setup.py 安裝的包會被複製到當前環境的 site-packages 目錄下,這意味著,一旦我們修改了包的原始碼,就需要重新安裝它。
這常常是集中開發過程中的一個問題,因為很容易忘記需要再次執行安裝,這就是為什麼 setuptools 提供了一個額外的 develop 命令的重要原因。
develop 命令的完整格式為
Python setup.py develop
,該命令允許我們在開發模式下安裝包,它會在部署目錄(site-packages)時建立一個指向專案原始碼的特殊連結,而不是將整個包複製過去,從而實現在編輯包的原始碼之後無需再重新安裝,並且它在 sys.path 中可用,就像正常安裝一樣。
pip 也支援用這種模式來安裝包,這個安裝選項叫作
可編輯模式,可 以使用 install 命令的 -e 引數來啟用,程式碼格式如下:
pip install -e 包路徑