成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 前端
當創建新的 Python 項目時,最好先創建一個新的虛擬環境,并在這個虛擬環境中安裝 Python 支持庫。在虛擬環境中安裝、升級、卸載 Python 支持庫不會影響其他項目的虛擬環境。

Python 虛擬環境讓不同項目在獨立的環境里運行,從而讓各項目的支持庫相互獨立,避免在使用不同版本的支持庫時導致沖突。

當創建新的 Python 項目時,最好先創建一個新的虛擬環境,并在這個虛擬環境中安裝 Python 支持庫。

在虛擬環境中安裝、升級、卸載 Python 支持庫不會影響其他項目的虛擬環境。

此外,使用虛擬環境還有利于項目的移植與復用。

本文介紹 11 款常用的 Python 虛擬環境管理器。

1. venv

venv 是 Python 內置標準庫中創建輕量級虛擬環境的工具。

venv 的功能簡單,無需單獨安裝,但如果你需要更好用的虛擬環境管理器,請繼續往下看。

venvvenv

2. virtualenv

virtualenv 是用于創建 Python 虛擬環境的工具。雖然自 Python 3.3 起,virtualenv 的部分功能已經整合到 venv 模塊中,但 virtualenv 仍然保留了其特有的優勢。

相較于 venv,virtualenv 創建虛擬環境的速度更快。

此外,virtualenv 提供了更多的擴展和選項,能夠靈活地創建多種 Python 版本的虛擬環境,并且可以通過 pip 快速升級。

virtualenvvirtualenv

3. Pipenv

Pipenv 彌合了 pip、python 和 virtualenv 之間的差距。

使用 Pipfile 和 Pipfile.lock 文件,Pipenv 可以指定 Python 的版本和支持庫,并與 pyenv 進行交互操作,生成構建項目鎖文件。

Pipenv 自動為項目創建虛擬環境,在安裝、卸載支持庫時根據需要更新 Pipfile。

Pipenv 的目標是為開發者提供一致的開發環境,不再需要分別使用 pip 和 virtualenv。

PipenvPipenv

4. pyenv

Pyenv 讓開發者可以在多個 Python 版本之間輕松切換,解決了 venv 不能創建不同 Python 版本虛擬環境的限制。

Pyenv 支持在不同項目中切換 Python 版本。

但是,開發者有時會濫用 pyenv 設置全局的 Python 版本,導致項目之間的 Python 版本混亂,影響項目的復用和開發環境的穩定。

Pyenv 的理念很簡單,秉承了 UNIX 哲學中單一用途工具的傳統,它源自于 rbenv 和 ruby-build,并專門為 Python 進行了修改和適配。

與同類工具不同,pyenv 完全由純 Shell 腳本實現,不依賴 Python,無需擔心 Python 引導問題。

Pyenv 通過修改操作系統的 PATH 環境變量,可不同 Python 版本之間切換,并能同時運行多個 Python 版本的命令,在不同 Python 環境下進行測試和開發時特別實用。

pyenv 主要用于切換 Python 版本,并不直接管理虛擬環境。不過,可以結合 pyenv 與 virtualenv 命令,或使用 pyenv-virtualenv 插件管理虛擬環境。

pyenv 目前已經成為 Python 開發者創建虛擬環境的首選工具之一。

pyenvpyenv

5. Conda

Conda 是由 Anaconda 出品的命令行工具,用于在 Windows、macOS 和 Linux 上管理虛擬環境。

它不僅能管理 Python 支持庫,還能處理非 Python 支持庫,尤其針對數據科學方面的開發進行了優化。

Conda 使用自己的 Conda 虛擬環境切換非 Python 依賴項,無需使用復雜的 Docker。

與 Poetry 類似,Conda 在構建環境時執行完整的支持庫解析,其支持庫解析器 libmamba 是用 C++ 實現的,速度更快。

Conda 受到了數據科學開發人員的歡迎,但其用戶體驗仍有改進空間。

盡管如此,Conda 仍是 Python 生態系統中使用最廣泛的工具之一,尤其是在與 Ray 和 Metaflow 等第三方工具集成時。

condaconda

6. Poetry

Poetry 支持安裝和更新支持庫,提供鎖文件以確保項目的復用,并能構建項目分發包。

Poetry 需要 Python 3.8+,跨平臺支持 Linux、macOS 和 Windows。

Poetry 類似于 Cargo(Rust 的包管理器) 和 npm(Node.js 的包管理器),是 Python 生態系統中使用體驗與這兩個包最接近的工具。

類似于 Conda,Poetry 預先解析完整的依賴圖,并按拓撲順序安裝支持庫。

Poetry 依據 pyproject.toml 管理項目內外的虛擬環境。

poetry.lock 文件可以確保項目的復用,但體積較大。

此外,Poetry 還兼具構建工具功能,可以發布 Python 包。

Poetry 的解析速度較慢,部分是因為 Python 包聲明支持庫的方式不一致,可能會導致支持庫解析的時間較長。

PoetryPoetry

7. PDM

PDM 的目標是成為新生代 Python 支持庫管理工具。

與 Poetry 類似,PDM 也是一款快速的支持庫解析器,主要用于大型二進制文件分發。

它具備靈活強大的插件系統和多功能用戶腳本。

此外,PDM 還可以使用 indygreg 的 python-build-standalone 安裝 Python,并支持類似 pnpm 的集中式安裝緩存。

PDM 與 Poetry 的主要區別在于,PDM 支持 PEP-582,將虛擬環境集成到項目目錄中,避免了傳統虛擬環境的手動激活和停用,提高了開發效率。

PDMPDM

8. Huak

Huak 是使用 Rust 開發的 Python 包管理器。

JavaScript 社區目前已經出現了向 Rust 轉型的趨勢,Huak 也希望將 Rust 引入 Python 生態系統。

Rust 生態系統上手體驗很出色,Cargo 起了很大的作用。

Huak 希望為 Python 提供相同的體驗,它的目標是要達到極致速度。

Huak 的理念是改善開發者體驗,使其在開發 Python 項目時享受與 Cargo 類似的流暢感。

雖然目前 Huak 仍處于實驗階段,但其未來潛力巨大,值得關注。

HuakHuak

9. Pixi

Pixi 是基于 Rust  的 rattler 庫開發的,具有顯著的性能和安全優勢。

它的理念是提供類似于 cargo 或 yarn 的開發體驗。

Pixi 目標是直接取代 Conda,并能像 Conda 一樣管理非 Python 依賴項。

2024 年 2 月,為了追求更快的速度,Pixi 將后臺的 rip 改為 uv。

與 Conda 和 mamba 不同,Pixi 提供了自定義類型的鎖文件,使其在復用方面領先于 Conda。

Pixi 支持可復用的方式安裝支持庫,并支持 Python、C++ 和 R 等多種語言, 且兼容所有主流操作系統。

Pixi 還提供了簡潔而強大的命令行界面,使得支持庫管理更加簡單、高效。

PixiPixi

10. Rye

Rye 由 Astral.sh 開發,也是基于 Rust 構建的,旨在提升開發效率和用戶體驗。

與傳統的包管理工具相比,Rye 的性能有顯著提升,功能也更加豐富。

Rye 希望為 Python 開發者提供一站式的工具,讓 Python 支持庫的安裝與管理更加輕松。

Rye 使用與 uv 相同的支持庫解析器,提供更快的管理體驗。

Rye 還提供了與 poetry 類似的功能,但速度更快。

RyeRye

11. uv

uv 也是 Astral.sh 出品的 Python 虛擬環境管理器,是當前備受期待的新生代包管理工具。

uv 的目標是取代 pip,同時具備與 Cargo 類似的功能。

uv 支持 Python 打包工具的所有特性,包括可編輯安裝、Git 依賴、URL 依賴、本地依賴、約束文件和源碼分發等。

Astral.sh 還開發了 Rust 生態中備受開發者喜愛的 ruff (用 Rust 開發的高性能 Python 代碼檢查和代碼格式化工具)。

與 poetry 類似,uv 通過 pyproject.toml 管理項目,得益于 Rust 的高效算法,其解析速度至少比 poetry 快一個量級。

目前,uv 還沒有推出穩定版,但其性能測試結果讓人期待。

圖片圖片

uv 與主流虛擬環境管理器的性能測試對比

uv 在性能方面表現優異,相較于 pip 和 pip-tools,在沒有緩存時快 8~10 倍,在有緩存時快 80~115 倍。

uv 創建虛擬環境的速度比 venv 快 80 倍,比 virtualenv 快 7 倍,并且不依賴于 Python。

總之,uv 作為高效且兼容性強的包管理工具,有望取代 poetry 等工具。

隨著 uv 功能的不斷增強,將來可能會與 Rye 進行合并。

圖片uv圖片uv


責任編輯:武曉燕 來源: Python學研大本營
相關推薦

2022-01-26 09:03:40

架構

2021-08-13 08:42:48

Python 編程技巧poetry

2024-11-22 15:23:51

Python虛擬環境

2024-05-28 09:26:42

2021-01-22 09:11:34

Python多線程CPU

2022-08-09 18:00:26

開源密碼管理器Padloc

2014-04-23 11:11:27

Linux下載管理器uGet

2020-04-15 19:31:59

Bitwarden開源密碼管理器

2021-06-02 16:19:14

技術研發指標

2010-11-30 16:26:38

2017-02-22 15:19:17

服務器虛擬化優化虛擬環境

2013-07-25 09:31:59

開源云計算

2021-07-05 06:51:42

Python虛擬環境

2022-07-14 16:18:32

massCode開源

2021-09-29 00:19:10

容器集群k8s

2024-05-20 08:45:46

2020-09-29 16:49:41

開源密碼管理器互聯網

2012-06-04 10:02:19

Linux文件管理器

2023-05-22 16:12:17

2020-07-06 07:00:21

PyCharm虛擬環境
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产视频久久久 | 亚欧性视频 | 国产精品夜夜春夜夜爽久久电影 | 在线中文视频 | 国产精品一区二区三区在线 | a精品视频 | 国产剧情一区 | 国产1区2区在线观看 | 亚洲第1页| 免费在线看a | 中文字幕在线观看第一页 | 天天综合久久 | 国产剧情一区二区三区 | 超碰成人免费 | 国产成人黄色 | 黄色片在线网站 | 日韩在线不卡视频 | 日韩中文一区二区三区 | 国产精品久久欧美久久一区 | 久久久久一区二区三区四区 | 欧美亚洲视频在线观看 | 51ⅴ精品国产91久久久久久 | 91在线看网站 | 国产精品久久久久久中文字 | 99热这里有精品 | 欧美猛交| 久久精品国产一区二区三区 | 久久久久久久久久毛片 | 日韩一区二区三区四区五区 | 中文字幕视频三区 | 精品美女久久久久久免费 | 亚洲天天 | 91视频一区 | 美女毛片 | 亚洲第一在线 | jizz在线免费观看 | 久久精品中文 | 综合久 | 日韩一区二区三区精品 | 日韩欧美在线一区二区 | 国产精品久久久爽爽爽麻豆色哟哟 |