在本文中,我們正在研究使用 pip 將程式碼安裝到虛擬環境中的不同方法。
這些會變得更加複雜,但不用擔心,我會全程陪伴您。拍拍你的背
廢話說夠了!讓我們從簡單的事情開始。
假設以下情況:您剛剛簽出了儲存庫並想要安裝需求。
這可以透過使用以下命令輕鬆完成......當然是在創建虛擬環境之後:
如果您想知道安裝命令和requirements.txt 的缺失,我有壞消息給您。現在是 2024 年,您不應該再使用requirements.txt。
這當然只是我自己的意見,但我正在使用的所有儲存庫都有一個 pyproject.toml,我強烈建議在您的每個專案中也使用一個。可行的例外可能是沙箱專案和小腳本。
「為什麼」在這裡可能會被放錯地方,但請允許我給你先睹為快。它不僅允許您自己定義您的需求。您也可以定義使用者可以根據需要安裝的可選依賴項。
這對於您在生產應用程式中不需要的開發工具特別有用,例如測試庫或格式化程式。
但這只是功能清單的開始。它們也是元資料的存放位置,並允許自訂應用程式的入口點。
這裡再次安裝指令:
確保您位於可以找到 pyproject.toml 的資料夾中。
這裡有一個專業提示,如果您打算使用正在安裝的儲存庫,請使用以下命令
這將執行可編輯的安裝,也稱為“開發模式”,它允許您迭代測試程式碼更改,而無需重新安裝專案。
這是什麼意思?
您是否曾經遇到過這樣的情況:您更改了從中導入的模組中的程式碼,但更改似乎沒有生效?
嘗試可編輯安裝!
簡單問題:如果你想安裝特定分支的版本而不是預設分支,你該怎麼辦?
答案是顯而易見的
並重複上面的步驟!對嗎?
你個傻瓜,你剛剛啟動了我的陷阱卡!
看,從 2.23 版本開始,鎮上出現了一個新的孩子,可以更直觀地切換分支,它的名字叫 git switch。
git checkout 自此已被棄用。
所以不要使用過時的工具在同事面前暴露自己。相反,下次共享螢幕時隨意按下 git 開關,讓每個人都知道您是認真的。
振作起來!
到目前為止,一切都只是兒戲。現在是時候使用一些大男孩 pip 了。
看,每個人都可以安裝包存儲庫中可用的包,但只知道如何從那裡安裝意味著您將無法訪問私有存儲庫中的所有黃金。
在將你自己的程式碼變成包之前測試它也很有幫助。
如果您發現自己處於這種情況,請使用以下命令:
這裡是一個沒有佔位符的例子,可能會比較容易理解。
有趣的事實:「://」之後的所有內容幾乎與 git 產生的 ssh 命令相同。但請注意,必須替換斜杠,而不是用於分隔“github.com”和所有者“pandas-dev”的冒號。
如果您想從分支安裝......或任何其他相關參考怎麼辦?
簡單!只需在命令末尾添加 @(ref) 即可。所以它看起來像
但是如果從命令列安裝軟體包還不夠怎麼辦?如果您的建置管道也應該從私人儲存庫安裝怎麼辦?
希望您同意在管道上新增單獨的 pip install 語句是不可能的。
所以,讓我向您展示要添加到 pyproject.toml 的依賴項部分的內容。 你會發現,它與先前的命令非常相似:
加入此內容後,再次執行 pip install -e ..
恭喜!您剛剛在您的環境中安裝了過時版本的 pandas。您可能想對您需要的實際包重複此操作。
既然你一直堅持到現在,我會推薦一個額外的工具。
ここ数か月間、私は uv を使用してきました。これは、Rust で書かれた pip (Python エコシステムでよく使用されるツールの 1 つ) のドロップイン代替品です。
最大のセールスポイントは、仮想環境の作成とパッケージのインストールが大幅に高速化されることです。特に仮想環境を再作成している場合は、キャッシュが使用されるためです。私たちは 10 倍高速になることについて話しています。キャッシュが暖かい場合はさらに 100 倍高速になることもあります。
メリットのリストはそれよりもはるかに長いですが、これも別の記事に記載します。だから、今は試してみて、後で感謝します。
この件は終わりにしましょう。
これらはすべて、git と pip の間の相互作用に関して私が仕事中に使用した方法です。他にもインストール方法があるかもしれませんが、これでユースケースの 99% がカバーされるはずです。
お気に入りのコマンドラインのトリックを忘れてしまったのでしょうか?コメントで共有してください。
この記事で何か新しいことを学んでいただければ幸いです。ソフトウェア開発に関するより技術的な記事に興味がある場合は、フォローを検討してください。
以上是關於如何使用 pip 安裝你需要知道的一切的詳細內容。更多資訊請關注PHP中文網其他相關文章!