在本文中,我們將研究使用 pip 將程式碼安裝到虛擬環境中的不同方法。
這些會變得更加複雜,但不用擔心,我會全程陪伴您。 拍拍你的背
說夠了!讓我們從簡單的事情開始。
假設以下情況:您剛剛簽出儲存庫並想要安裝需求。
這可以透過使用以下命令輕鬆完成......當然是在創建虛擬環境之後:
$ python -m venv (name of virtual environment) $ source (name of virtual environment)/bin/activate $ pip install .
如果您想知道安裝命令和requirements.txt 的缺失,我有壞消息給您。現在是 2024 年,您不應該再使用requirements.txt。
這當然只是我自己的意見,但我正在使用的所有儲存庫都有一個 pyproject.toml,我強烈建議在您的每個專案中也使用一個。可行的例外可能是沙箱專案和小腳本。
「為什麼」在這裡可能會被放錯地方,但請容許我給你先睹為快。它不僅允許您自己定義您的需求。您也可以定義使用者可以根據需要安裝的可選依賴項。
這對於您在生產應用程式中不需要的開發工具特別有用,例如測試程式庫或格式化程式。
但這只是功能清單的開始。它們也是元資料的存放位置,並允許自訂應用程式的入口點。
這裡再次安裝指令:
$ pip install .
確保您位於可以找到 pyproject.toml 的資料夾中。
這裡有一個專業提示,如果您打算使用正在安裝的儲存庫,請使用以下命令
$ pip install -e .
這將執行可編輯的安裝,也稱為“開發模式”,允許您迭代測試程式碼更改,而無需重新安裝專案。
這是什麼意思?
您是否曾經遇到過這樣的情況:您更改了從中導入的模組中的程式碼,但更改似乎沒有生效?
嘗試可編輯安裝!
簡單問題:如果你想安裝特定分支的版本而不是預設分支,你會怎麼做?
答案顯而易見
$ git checkout (branch name)
然後重複上面的步驟!對嗎?
你這個傻瓜,你剛剛啟動了我的陷阱卡!
看,從 2.23 版本開始,鎮上出現了一個新的東西,可以更直觀地切換分支,它的名字是 git switch。
git checkout 自此已被棄用。
所以不要使用過時的工具在同事面前暴露自己。相反,下次共享螢幕時隨意按下 git 開關,讓每個人都知道您是認真的。
振作起來!
到目前為止,一切都只是兒戲。現在是時候使用一些大男孩 pip 了。
看,每個人都可以安裝軟體包儲存庫中可用的軟體包,但只知道如何從那裡安裝意味著您將無法存取私有儲存庫中的所有黃金。
在將您自己的程式碼轉換為套件之前測試它也很有幫助。
如果您發現自己處於這種情況,請使用以下命令:
$ pip install git+ssh://git@(your provider)/(owner)/(repo name).git
這裡是一個沒有佔位符的範例,可能會比較容易理解。
$ pip install git+ssh://git@github.com/pandas-dev/pandas.git
有趣的事實:「://」之後的所有內容幾乎與 git 產生的 ssh 指令相同。但請注意,必須替換斜杠,而不是用於分隔“github.com”和所有者“pandas-dev”的冒號。
如果您想從分支安裝......或任何其他相關參考怎麼辦?
簡單!只需在命令末尾添加 @(ref) 即可。所以它看起來像
$ pip install git+ssh://git@github.com/pandas-dev/pandas.git@1.5.x (branch) $ pip install git+ssh://git@github.com/pandas-dev/pandas.git@v2.2.2 (tag)
但是如果從命令列安裝軟體包還不夠怎麼辦?如果您的建置管道也應該從私人儲存庫安裝怎麼辦?
希望您同意在管道上新增單獨的 pip install 語句是不可能的。
因此,讓我向您展示要新增到 pyproject.toml 的依賴項部分的內容。 您會發現,它與先前的命令非常相似:
"pandas@git+ssh://git@github.com/pandas-dev/pandas.git@1.5.x",
加入此內容後,再執行 pip install -e ..
恭喜!您剛剛在您的環境中安裝了過時版本的 pandas。您可能想對您需要的實際包重複此操作。
既然你堅持到現在,我會推薦一個額外的工具。
過去幾個月我使用了 uv,它是用 Rust 編寫的 pip(Python 生態系統中其他常用工具)的直接替代品。
最大的賣點是它顯著加快了虛擬環境的創建和軟體包的安裝速度。特別是當您重新建立虛擬環境時,因為它會使用快取。我們正在談論速度提高 10 倍……如果快取是熱的,甚至可以提高 100 倍。
好處清單比這長得多,但這也是另一篇文章的內容了。所以,現在就嘗試一下,稍後再感謝我。
讓我們結束這件事。
這些是我在工作中使用的所有方式來處理 git 和 pip 之間的相互作用。可能還有其他方法來安裝東西,但這應該涵蓋 99% 的用例。
我忘了你最喜歡的命令列技巧嗎?那就在評論裡分享吧。
我希望您透過這篇文章到了一些新東西,如果您對更多有關軟體開發的技術文章感興趣,請考慮關注。
以上是關於如何使用 pip 安裝你需要知道的一切的詳細內容。更多資訊請關注PHP中文網其他相關文章!