如何在開發期間安裝測試Python程式包?

2020-07-16 10:05:05
使用 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 包路徑