python常見環(huán)境管理工具超全解析
更新時間:2025年06月14日 11:48:28 作者:leo0308
在Python開發(fā)中,管理多個項(xiàng)目及其依賴項(xiàng)通常是一個挑戰(zhàn),下面這篇文章主要介紹了python常見環(huán)境管理工具的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
1. conda
- 功能:管理 Python 及多語言環(huán)境、依賴包、虛擬環(huán)境,可安裝底層二進(jìn)制庫。
- 適用場景:科學(xué)計(jì)算、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等依賴復(fù)雜的項(xiàng)目,需隔離環(huán)境或解決 pip 難裝依賴時。
- 常見用法:
conda create -n myenv python=3.10 conda activate myenv conda install numpy pandas conda list conda env remove -n myenv
2. pip
- 功能:官方包管理工具,安裝/升級/卸載 PyPI 包,支持 requirements.txt。
- 適用場景:純 Python 項(xiàng)目,配合 venv/virtualenv 進(jìn)行輕量隔離。
- 常見用法:
pip install requests pip install -r requirements.txt pip freeze > requirements.txt pip uninstall numpy
3. uv
- 功能:新一代 Python 包與環(huán)境管理工具,自動創(chuàng)建/管理虛擬環(huán)境,自動解析依賴文件,兼容 pip 命令。
- 適用場景:需要快速搭建、隔離和管理項(xiàng)目環(huán)境,自動識別依賴文件,適合現(xiàn)代開發(fā)。
- 常見用法:
uv pip install requests uv run server.py uv --python /path/to/python run app.py uv pip freeze > requirements.txt
uv 工具自動創(chuàng)建和管理環(huán)境的特點(diǎn)
- 自動檢測和創(chuàng)建虛擬環(huán)境:在項(xiàng)目目錄下運(yùn)行 uv 命令時,若無
.venv
文件夾,uv 會自動用當(dāng)前或指定 Python 解釋器創(chuàng)建.venv
虛擬環(huán)境。 - 自動激活和使用環(huán)境:uv 會自動在本地
.venv
虛擬環(huán)境中執(zhí)行所有操作,無需手動激活。 - 依賴自動解析與安裝:uv 會自動識別
pyproject.toml
、requirements.txt
、setup.py
等依賴文件,自動安裝依賴。 - 支持指定 Python 版本:可通過
uv run --python 路徑 xxx.py
指定 Python 解釋器。 - 環(huán)境隔離徹底:每個項(xiàng)目獨(dú)立
.venv
,互不干擾。
4. setup.py
- 功能:傳統(tǒng)項(xiàng)目構(gòu)建與分發(fā)腳本,聲明元數(shù)據(jù)、依賴、入口,構(gòu)建 wheel/源碼包。
- 適用場景:需要發(fā)布為 PyPI 包的老項(xiàng)目,兼容 setuptools 工具鏈。
- 常見用法:
python setup.py install python setup.py sdist bdist_wheel pip install .
5. pyproject.toml
- 功能:現(xiàn)代項(xiàng)目標(biāo)準(zhǔn)配置文件,聲明元數(shù)據(jù)、依賴、構(gòu)建后端,統(tǒng)一管理。
- 適用場景:新項(xiàng)目推薦,配合 poetry、flit、hatch、setuptools(新版)等現(xiàn)代工具。
- 常見用法:
[project] name = "demo" version = "0.1.0" dependencies = ["numpy>=1.23", "requests"] [build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta"
conda 與 uv 優(yōu)缺點(diǎn)詳細(xì)對比
對比項(xiàng) | conda | uv |
---|---|---|
適用范圍 | 支持 Python、R、C/C++ 等多語言環(huán)境,能管理二進(jìn)制依賴 | 專注于 Python,自動管理 Python 虛擬環(huán)境和依賴 |
環(huán)境隔離 | 支持虛擬環(huán)境,環(huán)境可跨項(xiàng)目復(fù)用 | 每項(xiàng)目自動創(chuàng)建 .venv ,強(qiáng)隔離,互不干擾 |
依賴管理 | 支持 Python 包和 C/C++/Fortran 等底層庫的安裝 | 僅支持 Python 包,依賴解析快,自動識別 pyproject.toml/requirements |
包源 | 默認(rèn)用 Anaconda/Conda Forge 鏡像,包體積大,更新慢 | 用 PyPI,包全且新,安裝速度快 |
安裝速度 | 較慢,尤其是首次安裝和大包 | 極快,依賴解析和安裝速度遠(yuǎn)超 pip/conda |
跨平臺支持 | Windows、Linux、Mac,適合科學(xué)計(jì)算環(huán)境 | Windows、Linux、Mac,適合開發(fā)和部署 |
非 Python 依賴 | 可直接安裝 OpenCV、MKL、CUDA 等系統(tǒng)庫 | 不支持非 Python 庫安裝 |
磁盤占用 | 環(huán)境可共用,節(jié)省空間(但大包體積大) | 每項(xiàng)目一環(huán)境,包有重復(fù),隔離性強(qiáng)但空間占用高 |
學(xué)習(xí)曲線 | 命令多,配置復(fù)雜,適合數(shù)據(jù)科學(xué)/科研用戶 | 命令簡單,自動化高,適合開發(fā)者和現(xiàn)代 Python 項(xiàng)目 |
生態(tài)集成 | 與 Jupyter、Spyder、VSCode 集成良好 | 與現(xiàn)代 Python 工具鏈(如 pyproject.toml、poetry)集成 |
典型場景 | 科學(xué)計(jì)算、數(shù)據(jù)分析、需底層庫支持的項(xiàng)目 | Web開發(fā)、通用 Python 項(xiàng)目、現(xiàn)代依賴管理 |
總結(jié)建議
- conda 適合科學(xué)計(jì)算、跨語言、多依賴和底層庫需求多的場景。
- uv 適合現(xiàn)代 Python 項(xiàng)目開發(fā)、自動化、依賴隔離和快速部署。
總結(jié)與選擇建議
- conda:適合科學(xué)計(jì)算、跨語言依賴、需管理底層庫時用
- pip + venv/virtualenv:輕量項(xiàng)目、純 Python 項(xiàng)目首選
- uv:現(xiàn)代項(xiàng)目推薦,自動識別依賴,集成 pip/venv 優(yōu)點(diǎn)
- setup.py:老項(xiàng)目/需兼容傳統(tǒng) PyPI 分發(fā)時用
- pyproject.toml:新項(xiàng)目推薦,統(tǒng)一依賴和元數(shù)據(jù)聲明,配合 uv/poetry/setuptools 使用
到此這篇關(guān)于python常見環(huán)境管理工具的文章就介紹到這了,更多相關(guān)python環(huán)境管理工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)模擬按鍵,自動翻頁看u17漫畫
這篇文章主要介紹了python實(shí)現(xiàn)模擬按鍵,自動翻頁看u17漫畫,十分簡單實(shí)用,需要的朋友可以參考下2015-03-03Python爬蟲模擬登陸嗶哩嗶哩(bilibili)并突破點(diǎn)選驗(yàn)證碼功能
這篇文章主要介紹了Python爬蟲模擬登陸嗶哩嗶哩(bilibili)并突破點(diǎn)選驗(yàn)證碼功能,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12Python實(shí)現(xiàn)統(tǒng)計(jì)單詞出現(xiàn)的個數(shù)
這篇文章主要介紹了Python實(shí)現(xiàn)統(tǒng)計(jì)單詞出現(xiàn)的個數(shù),本文給出了實(shí)現(xiàn)代碼以及使用方法,需要的朋友可以參考下2015-05-05python如何實(shí)現(xiàn)單向鏈表及單向鏈表的反轉(zhuǎn)
這篇文章主要介紹了python如何實(shí)現(xiàn)單向鏈表及單向鏈表的反轉(zhuǎn),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03Python3實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲
這篇文章主要為大家詳細(xì)介紹了Python3實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04