AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

11款常用的Python虛擬環境管理器,最受推崇的居然是最后一個

來源: 責編: 時間:2024-07-19 08:01:08 583觀看
導讀Python 虛擬環境讓不同項目在獨立的環境里運行,從而讓各項目的支持庫相互獨立,避免在使用不同版本的支持庫時導致沖突。當創建新的 Python 項目時,最好先創建一個新的虛擬環境,并在這個虛擬環境中安裝 Python 支持庫。在

Python 虛擬環境讓不同項目在獨立的環境里運行,從而讓各項目的支持庫相互獨立,避免在使用不同版本的支持庫時導致沖突。KjB28資訊網——每日最新資訊28at.com

當創建新的 Python 項目時,最好先創建一個新的虛擬環境,并在這個虛擬環境中安裝 Python 支持庫。KjB28資訊網——每日最新資訊28at.com

在虛擬環境中安裝、升級、卸載 Python 支持庫不會影響其他項目的虛擬環境。KjB28資訊網——每日最新資訊28at.com

此外,使用虛擬環境還有利于項目的移植與復用。KjB28資訊網——每日最新資訊28at.com

本文介紹 11 款常用的 Python 虛擬環境管理器。KjB28資訊網——每日最新資訊28at.com

1. venv

venv 是 Python 內置標準庫中創建輕量級虛擬環境的工具。KjB28資訊網——每日最新資訊28at.com

venv 的功能簡單,無需單獨安裝,但如果你需要更好用的虛擬環境管理器,請繼續往下看。KjB28資訊網——每日最新資訊28at.com

venvvenvKjB28資訊網——每日最新資訊28at.com

2. virtualenv

virtualenv 是用于創建 Python 虛擬環境的工具。雖然自 Python 3.3 起,virtualenv 的部分功能已經整合到 venv 模塊中,但 virtualenv 仍然保留了其特有的優勢。KjB28資訊網——每日最新資訊28at.com

相較于 venv,virtualenv 創建虛擬環境的速度更快。KjB28資訊網——每日最新資訊28at.com

此外,virtualenv 提供了更多的擴展和選項,能夠靈活地創建多種 Python 版本的虛擬環境,并且可以通過 pip 快速升級。KjB28資訊網——每日最新資訊28at.com

virtualenvvirtualenvKjB28資訊網——每日最新資訊28at.com

3. Pipenv

Pipenv 彌合了 pip、python 和 virtualenv 之間的差距。KjB28資訊網——每日最新資訊28at.com

使用 Pipfile 和 Pipfile.lock 文件,Pipenv 可以指定 Python 的版本和支持庫,并與 pyenv 進行交互操作,生成構建項目鎖文件。KjB28資訊網——每日最新資訊28at.com

Pipenv 自動為項目創建虛擬環境,在安裝、卸載支持庫時根據需要更新 Pipfile。KjB28資訊網——每日最新資訊28at.com

Pipenv 的目標是為開發者提供一致的開發環境,不再需要分別使用 pip 和 virtualenv。KjB28資訊網——每日最新資訊28at.com

PipenvPipenvKjB28資訊網——每日最新資訊28at.com

4. pyenv

Pyenv 讓開發者可以在多個 Python 版本之間輕松切換,解決了 venv 不能創建不同 Python 版本虛擬環境的限制。KjB28資訊網——每日最新資訊28at.com

Pyenv 支持在不同項目中切換 Python 版本。KjB28資訊網——每日最新資訊28at.com

但是,開發者有時會濫用 pyenv 設置全局的 Python 版本,導致項目之間的 Python 版本混亂,影響項目的復用和開發環境的穩定。KjB28資訊網——每日最新資訊28at.com

Pyenv 的理念很簡單,秉承了 UNIX 哲學中單一用途工具的傳統,它源自于 rbenv 和 ruby-build,并專門為 Python 進行了修改和適配。KjB28資訊網——每日最新資訊28at.com

與同類工具不同,pyenv 完全由純 Shell 腳本實現,不依賴 Python,無需擔心 Python 引導問題。KjB28資訊網——每日最新資訊28at.com

Pyenv 通過修改操作系統的 PATH 環境變量,可不同 Python 版本之間切換,并能同時運行多個 Python 版本的命令,在不同 Python 環境下進行測試和開發時特別實用。KjB28資訊網——每日最新資訊28at.com

pyenv 主要用于切換 Python 版本,并不直接管理虛擬環境。不過,可以結合 pyenv 與 virtualenv 命令,或使用 pyenv-virtualenv 插件管理虛擬環境。KjB28資訊網——每日最新資訊28at.com

pyenv 目前已經成為 Python 開發者創建虛擬環境的首選工具之一。KjB28資訊網——每日最新資訊28at.com

pyenvpyenvKjB28資訊網——每日最新資訊28at.com

5. Conda

Conda 是由 Anaconda 出品的命令行工具,用于在 Windows、macOS 和 Linux 上管理虛擬環境。KjB28資訊網——每日最新資訊28at.com

它不僅能管理 Python 支持庫,還能處理非 Python 支持庫,尤其針對數據科學方面的開發進行了優化。KjB28資訊網——每日最新資訊28at.com

Conda 使用自己的 Conda 虛擬環境切換非 Python 依賴項,無需使用復雜的 Docker。KjB28資訊網——每日最新資訊28at.com

與 Poetry 類似,Conda 在構建環境時執行完整的支持庫解析,其支持庫解析器 libmamba 是用 C++ 實現的,速度更快。KjB28資訊網——每日最新資訊28at.com

Conda 受到了數據科學開發人員的歡迎,但其用戶體驗仍有改進空間。KjB28資訊網——每日最新資訊28at.com

盡管如此,Conda 仍是 Python 生態系統中使用最廣泛的工具之一,尤其是在與 Ray 和 Metaflow 等第三方工具集成時。KjB28資訊網——每日最新資訊28at.com

condacondaKjB28資訊網——每日最新資訊28at.com

6. Poetry

Poetry 支持安裝和更新支持庫,提供鎖文件以確保項目的復用,并能構建項目分發包。KjB28資訊網——每日最新資訊28at.com

Poetry 需要 Python 3.8+,跨平臺支持 Linux、macOS 和 Windows。KjB28資訊網——每日最新資訊28at.com

Poetry 類似于 Cargo(Rust 的包管理器) 和 npm(Node.js 的包管理器),是 Python 生態系統中使用體驗與這兩個包最接近的工具。KjB28資訊網——每日最新資訊28at.com

類似于 Conda,Poetry 預先解析完整的依賴圖,并按拓撲順序安裝支持庫。KjB28資訊網——每日最新資訊28at.com

Poetry 依據 pyproject.toml 管理項目內外的虛擬環境。KjB28資訊網——每日最新資訊28at.com

poetry.lock 文件可以確保項目的復用,但體積較大。KjB28資訊網——每日最新資訊28at.com

此外,Poetry 還兼具構建工具功能,可以發布 Python 包。KjB28資訊網——每日最新資訊28at.com

Poetry 的解析速度較慢,部分是因為 Python 包聲明支持庫的方式不一致,可能會導致支持庫解析的時間較長。KjB28資訊網——每日最新資訊28at.com

PoetryPoetryKjB28資訊網——每日最新資訊28at.com

7. PDM

PDM 的目標是成為新生代 Python 支持庫管理工具。KjB28資訊網——每日最新資訊28at.com

與 Poetry 類似,PDM 也是一款快速的支持庫解析器,主要用于大型二進制文件分發。KjB28資訊網——每日最新資訊28at.com

它具備靈活強大的插件系統和多功能用戶腳本。KjB28資訊網——每日最新資訊28at.com

此外,PDM 還可以使用 indygreg 的 python-build-standalone 安裝 Python,并支持類似 pnpm 的集中式安裝緩存。KjB28資訊網——每日最新資訊28at.com

PDM 與 Poetry 的主要區別在于,PDM 支持 PEP-582,將虛擬環境集成到項目目錄中,避免了傳統虛擬環境的手動激活和停用,提高了開發效率。KjB28資訊網——每日最新資訊28at.com

PDMPDMKjB28資訊網——每日最新資訊28at.com

8. Huak

Huak 是使用 Rust 開發的 Python 包管理器。KjB28資訊網——每日最新資訊28at.com

JavaScript 社區目前已經出現了向 Rust 轉型的趨勢,Huak 也希望將 Rust 引入 Python 生態系統。KjB28資訊網——每日最新資訊28at.com

Rust 生態系統上手體驗很出色,Cargo 起了很大的作用。KjB28資訊網——每日最新資訊28at.com

Huak 希望為 Python 提供相同的體驗,它的目標是要達到極致速度。KjB28資訊網——每日最新資訊28at.com

Huak 的理念是改善開發者體驗,使其在開發 Python 項目時享受與 Cargo 類似的流暢感。KjB28資訊網——每日最新資訊28at.com

雖然目前 Huak 仍處于實驗階段,但其未來潛力巨大,值得關注。KjB28資訊網——每日最新資訊28at.com

HuakHuakKjB28資訊網——每日最新資訊28at.com

9. Pixi

Pixi 是基于 Rust  的 rattler 庫開發的,具有顯著的性能和安全優勢。KjB28資訊網——每日最新資訊28at.com

它的理念是提供類似于 cargo 或 yarn 的開發體驗。KjB28資訊網——每日最新資訊28at.com

Pixi 目標是直接取代 Conda,并能像 Conda 一樣管理非 Python 依賴項。KjB28資訊網——每日最新資訊28at.com

2024 年 2 月,為了追求更快的速度,Pixi 將后臺的 rip 改為 uv。KjB28資訊網——每日最新資訊28at.com

與 Conda 和 mamba 不同,Pixi 提供了自定義類型的鎖文件,使其在復用方面領先于 Conda。KjB28資訊網——每日最新資訊28at.com

Pixi 支持可復用的方式安裝支持庫,并支持 Python、C++ 和 R 等多種語言, 且兼容所有主流操作系統。KjB28資訊網——每日最新資訊28at.com

Pixi 還提供了簡潔而強大的命令行界面,使得支持庫管理更加簡單、高效。KjB28資訊網——每日最新資訊28at.com

PixiPixiKjB28資訊網——每日最新資訊28at.com

10. Rye

Rye 由 Astral.sh 開發,也是基于 Rust 構建的,旨在提升開發效率和用戶體驗。KjB28資訊網——每日最新資訊28at.com

與傳統的包管理工具相比,Rye 的性能有顯著提升,功能也更加豐富。KjB28資訊網——每日最新資訊28at.com

Rye 希望為 Python 開發者提供一站式的工具,讓 Python 支持庫的安裝與管理更加輕松。KjB28資訊網——每日最新資訊28at.com

Rye 使用與 uv 相同的支持庫解析器,提供更快的管理體驗。KjB28資訊網——每日最新資訊28at.com

Rye 還提供了與 poetry 類似的功能,但速度更快。KjB28資訊網——每日最新資訊28at.com

RyeRyeKjB28資訊網——每日最新資訊28at.com

11. uv

uv 也是 Astral.sh 出品的 Python 虛擬環境管理器,是當前備受期待的新生代包管理工具。KjB28資訊網——每日最新資訊28at.com

uv 的目標是取代 pip,同時具備與 Cargo 類似的功能。KjB28資訊網——每日最新資訊28at.com

uv 支持 Python 打包工具的所有特性,包括可編輯安裝、Git 依賴、URL 依賴、本地依賴、約束文件和源碼分發等。KjB28資訊網——每日最新資訊28at.com

Astral.sh 還開發了 Rust 生態中備受開發者喜愛的 ruff (用 Rust 開發的高性能 Python 代碼檢查和代碼格式化工具)。KjB28資訊網——每日最新資訊28at.com

與 poetry 類似,uv 通過 pyproject.toml 管理項目,得益于 Rust 的高效算法,其解析速度至少比 poetry 快一個量級。KjB28資訊網——每日最新資訊28at.com

目前,uv 還沒有推出穩定版,但其性能測試結果讓人期待。KjB28資訊網——每日最新資訊28at.com

圖片圖片KjB28資訊網——每日最新資訊28at.com

uv 與主流虛擬環境管理器的性能測試對比KjB28資訊網——每日最新資訊28at.com

uv 在性能方面表現優異,相較于 pip 和 pip-tools,在沒有緩存時快 8~10 倍,在有緩存時快 80~115 倍。KjB28資訊網——每日最新資訊28at.com

uv 創建虛擬環境的速度比 venv 快 80 倍,比 virtualenv 快 7 倍,并且不依賴于 Python。KjB28資訊網——每日最新資訊28at.com

總之,uv 作為高效且兼容性強的包管理工具,有望取代 poetry 等工具。KjB28資訊網——每日最新資訊28at.com

隨著 uv 功能的不斷增強,將來可能會與 Rye 進行合并。KjB28資訊網——每日最新資訊28at.com

圖片uv圖片uvKjB28資訊網——每日最新資訊28at.com


KjB28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-101713-0.html11款常用的Python虛擬環境管理器,最受推崇的居然是最后一個

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: FlowiseAI:低代碼時代的AI革命先行者

下一篇: 我們如何管理軟件項目的交付?

標簽:
  • 熱門焦點
Top