安裝當地專案¶
在電腦的資料夾/目錄中取得一個專案十分常見 [1],你希望安裝它。
根據你的使用情況,你可以使用 pip 的兩種方式來執行此操作
一般安裝
可編輯安裝
一般安裝¶
你可以指定 pip 的專案路徑來安裝當地專案
$ python -m pip install path/to/SomeProject
$ python -m pip install path/to/SomeProject
C:> py -m pip install path/to/SomeProject
這將會以類似於實際安裝的方式,將專案安裝到與 pip 關聯的 Python 中。
這是應該用在持續整合系統和部署中,因為它最接近於如果你建置一個發行版並從中安裝,一個套件將如何被安裝(因為這就是它確切執行的動作)。
可編輯安裝¶
你可以在「可編輯」模式下安裝當地專案
$ python -m pip install -e path/to/SomeProject
$ python -m pip install -e path/to/SomeProject
C:> py -m pip install -e path/to/SomeProject
可編輯安裝讓你可以在不複製任何檔案的情況下安裝你的專案。反而地,開發目錄中的檔案會被新增到 Python 的匯入路徑中。這種方法非常適合開發,也被稱為「開發安裝」。
使用可編輯安裝,你只需要在你變更專案的元資料(例如:版本、需要產生哪些指令碼等)時,執行重新安裝。當你需要執行專案中非 Python 程式碼的編譯(例如:C 擴充功能)時,你仍然需要執行建置指令碼。
注意
在一般安裝與可編輯安裝之間可以看見行為差異。這些差異取決於建置後端,你應該查看建置後端的說明文件以取得詳細資料。如果你將專案分佈為「發行套件」,使用者會看到一般安裝的行為 -- 因此,確保一般安裝正常運作非常重要。
註解
這在功能上與 setuptools 的開發模式相同,那正是基於 setuptools 的專案使用的機制。
直接使用 setup.py develop
有兩個優點
它也可以與非 setuptools 建置後端搭配使用。
使用 pip 時,「.egg-info」目錄會相對於專案路徑建立。這通常比 setuptools 更佳,因為 setuptools 會將其傾倒在目前的執行目錄中。
建置 artefact¶
於 21.3 版本中變更: 預設情況下,已不再在呼叫建置系統前將要安裝的專案複製至暫時目錄。提供一個 --use-deprecated=out-of-tree-build
選項,作為一個暫時的後備方案,以輔助使用者移轉。
於 22.1 版本中變更: 已移除 --use-deprecated=out-of-tree-build
選項。
當提供在本地目錄中的專案時,pip 將「就地」呼叫建置系統。這種行為會產生幾個後果
現在,對於某些類型專案以及在 I/O 速度較慢的系統(例如:透過網路掛載儲存裝置或過於積極的防毒軟體)上,本地專案建置速度會顯著加快。
某些建置後端(例如:
setuptools
)會將次要建置目標(例如:.egg-info
目錄)散佈到專案目錄中。某些建置後端(例如:
setuptools
)可能無法再執行平行建置,因為它們先前依賴 pip 為每個建置在一個獨立目錄中呼叫它們這項事實。