日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

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

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

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

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

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

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

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

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

1. venv

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

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

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

2. virtualenv

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

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

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

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

3. Pipenv

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

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

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

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

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

4. pyenv

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

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

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

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

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

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

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

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

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

5. Conda

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

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

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

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

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

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

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

6. Poetry

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

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

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

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

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

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

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

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

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

7. PDM

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

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

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

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

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

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

8. Huak

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

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

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

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

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

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

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

9. Pixi

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

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

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

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

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

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

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

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

10. Rye

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

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

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

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

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

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

11. uv

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

標簽:
  • 熱門焦點
  • 盧偉冰長文解析K60至尊版 對Redmi有著里程碑式的意義

    在今天的Redmi后性能時代戰略發布會結束之后,Redmi總經理盧偉冰又帶來了一篇長文,詳解了為什么 Redmi 要開啟后性能時代?為什么選擇和 MediaTek、Pixelworks 深度合作?以及后性
  • 5月iOS設備性能榜:M1 M2依舊是榜單前五

    和上個月一樣,沒有新品發布的iOS設備性能榜的上榜設備并沒有什么更替,僅僅只有跑分變化而產生的排名變動,剛剛開始的蘋果WWDC2023,推出的產品也依舊是新款Mac Pro、新款Mac Stu
  • 28個SpringBoot項目中常用注解,日常開發、求職面試不再懵圈

    前言在使用SpringBoot開發中或者在求職面試中都會使用到很多注解或者問到注解相關的知識。本文主要對一些常用的注解進行了總結,同時也會舉出具體例子,供大家學習和參考。注解
  • 掘力計劃第 20 期:Flutter 混合開發的混亂之治

    在掘力計劃系列活動第20場,《Flutter 開發實戰詳解》作者,掘金優秀作者,Github GSY 系列目負責人戀貓的小郭分享了Flutter 混合開發的混亂之治。Flutter 基于自研的 Skia 引擎
  • 把LangChain跑起來的三個方法

    使用LangChain開發LLM應用時,需要機器進行GLM部署,好多同學第一步就被勸退了,那么如何繞過這個步驟先學習LLM模型的應用,對Langchain進行快速上手?本片講解3個把LangChain跑起來
  • 分享六款相見恨晚的PPT模版網站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS網站旨在為全球Office用戶提供豐富的高品質原創PPT模板、實用文檔、數據圖表及個性化定制服務。優點:OfficePLUS是微軟官方網站,囊括PPT模板、Word模
  • 微信語音大揭秘:為什么禁止轉發?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉發?這是一個我們經常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • JVM優化:實戰OutOfMemoryError異常

    一、Java堆溢出堆內存中主要存放對象、數組等,只要不斷地創建這些對象,并且保證 GC Roots 到對象之間有可達路徑來避免垃 圾收集回收機制清除這些對象,當這些對象所占空間超過
  • 梁柱接棒兩年,騰訊音樂闖出新路子

    文丨田靜 出品丨牛刀財經(niudaocaijing)7月5日,企鵝FM發布官方公告稱由于業務調整,將于9月6日正式停止運營,這意味著騰訊音樂長音頻業務走向消亡。騰訊在長音頻領域還在摸索。為
Top 主站蜘蛛池模板: 千阳县| 香河县| 砚山县| 宜章县| 青海省| 寿阳县| 逊克县| 乐清市| 塘沽区| 弥勒县| 慈溪市| 惠州市| 富宁县| 昌黎县| 罗平县| 喀喇沁旗| 垫江县| 宁武县| 定陶县| 富民县| 岢岚县| 洛浦县| 宿松县| 东台市| 闽侯县| 昌乐县| 浦北县| 咸阳市| 隆安县| 北票市| 曲阜市| 明水县| 周至县| 柘城县| 平原县| 津南区| 奉新县| 锡林浩特市| 白水县| 治多县| 宝丰县|