python常見(jiàn)環(huán)境管理工具超全解析
1. conda
- 功能:管理 Python 及多語(yǔ)言環(huán)境、依賴(lài)包、虛擬環(huán)境,可安裝底層二進(jìn)制庫(kù)。
- 適用場(chǎng)景:科學(xué)計(jì)算、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等依賴(lài)復(fù)雜的項(xiàng)目,需隔離環(huán)境或解決 pip 難裝依賴(lài)時(shí)。
- 常見(jiàn)用法:
conda create -n myenv python=3.10 conda activate myenv conda install numpy pandas conda list conda env remove -n myenv
2. pip
- 功能:官方包管理工具,安裝/升級(jí)/卸載 PyPI 包,支持 requirements.txt。
- 適用場(chǎng)景:純 Python 項(xiàng)目,配合 venv/virtualenv 進(jìn)行輕量隔離。
- 常見(jiàn)用法:
pip install requests pip install -r requirements.txt pip freeze > requirements.txt pip uninstall numpy
3. uv
- 功能:新一代 Python 包與環(huán)境管理工具,自動(dòng)創(chuàng)建/管理虛擬環(huán)境,自動(dòng)解析依賴(lài)文件,兼容 pip 命令。
- 適用場(chǎng)景:需要快速搭建、隔離和管理項(xiàng)目環(huán)境,自動(dòng)識(shí)別依賴(lài)文件,適合現(xiàn)代開(kāi)發(fā)。
- 常見(jiàn)用法:
uv pip install requests uv run server.py uv --python /path/to/python run app.py uv pip freeze > requirements.txt
uv 工具自動(dòng)創(chuàng)建和管理環(huán)境的特點(diǎn)
- 自動(dòng)檢測(cè)和創(chuàng)建虛擬環(huán)境:在項(xiàng)目目錄下運(yùn)行 uv 命令時(shí),若無(wú)
.venv文件夾,uv 會(huì)自動(dòng)用當(dāng)前或指定 Python 解釋器創(chuàng)建.venv虛擬環(huán)境。 - 自動(dòng)激活和使用環(huán)境:uv 會(huì)自動(dòng)在本地
.venv虛擬環(huán)境中執(zhí)行所有操作,無(wú)需手動(dòng)激活。 - 依賴(lài)自動(dòng)解析與安裝:uv 會(huì)自動(dòng)識(shí)別
pyproject.toml、requirements.txt、setup.py等依賴(lài)文件,自動(dòng)安裝依賴(lài)。 - 支持指定 Python 版本:可通過(guò)
uv run --python 路徑 xxx.py指定 Python 解釋器。 - 環(huán)境隔離徹底:每個(gè)項(xiàng)目獨(dú)立
.venv,互不干擾。
4. setup.py
- 功能:傳統(tǒng)項(xiàng)目構(gòu)建與分發(fā)腳本,聲明元數(shù)據(jù)、依賴(lài)、入口,構(gòu)建 wheel/源碼包。
- 適用場(chǎng)景:需要發(fā)布為 PyPI 包的老項(xiàng)目,兼容 setuptools 工具鏈。
- 常見(jiàn)用法:
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ù)、依賴(lài)、構(gòu)建后端,統(tǒng)一管理。
- 適用場(chǎng)景:新項(xiàng)目推薦,配合 poetry、flit、hatch、setuptools(新版)等現(xiàn)代工具。
- 常見(jià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ì)對(duì)比
| 對(duì)比項(xiàng) | conda | uv |
|---|---|---|
| 適用范圍 | 支持 Python、R、C/C++ 等多語(yǔ)言環(huán)境,能管理二進(jìn)制依賴(lài) | 專(zhuān)注于 Python,自動(dòng)管理 Python 虛擬環(huán)境和依賴(lài) |
| 環(huán)境隔離 | 支持虛擬環(huán)境,環(huán)境可跨項(xiàng)目復(fù)用 | 每項(xiàng)目自動(dòng)創(chuàng)建 .venv,強(qiáng)隔離,互不干擾 |
| 依賴(lài)管理 | 支持 Python 包和 C/C++/Fortran 等底層庫(kù)的安裝 | 僅支持 Python 包,依賴(lài)解析快,自動(dòng)識(shí)別 pyproject.toml/requirements |
| 包源 | 默認(rèn)用 Anaconda/Conda Forge 鏡像,包體積大,更新慢 | 用 PyPI,包全且新,安裝速度快 |
| 安裝速度 | 較慢,尤其是首次安裝和大包 | 極快,依賴(lài)解析和安裝速度遠(yuǎn)超 pip/conda |
| 跨平臺(tái)支持 | Windows、Linux、Mac,適合科學(xué)計(jì)算環(huán)境 | Windows、Linux、Mac,適合開(kāi)發(fā)和部署 |
| 非 Python 依賴(lài) | 可直接安裝 OpenCV、MKL、CUDA 等系統(tǒng)庫(kù) | 不支持非 Python 庫(kù)安裝 |
| 磁盤(pán)占用 | 環(huán)境可共用,節(jié)省空間(但大包體積大) | 每項(xiàng)目一環(huán)境,包有重復(fù),隔離性強(qiáng)但空間占用高 |
| 學(xué)習(xí)曲線(xiàn) | 命令多,配置復(fù)雜,適合數(shù)據(jù)科學(xué)/科研用戶(hù) | 命令簡(jiǎn)單,自動(dòng)化高,適合開(kāi)發(fā)者和現(xiàn)代 Python 項(xiàng)目 |
| 生態(tài)集成 | 與 Jupyter、Spyder、VSCode 集成良好 | 與現(xiàn)代 Python 工具鏈(如 pyproject.toml、poetry)集成 |
| 典型場(chǎng)景 | 科學(xué)計(jì)算、數(shù)據(jù)分析、需底層庫(kù)支持的項(xiàng)目 | Web開(kāi)發(fā)、通用 Python 項(xiàng)目、現(xiàn)代依賴(lài)管理 |
總結(jié)建議
- conda 適合科學(xué)計(jì)算、跨語(yǔ)言、多依賴(lài)和底層庫(kù)需求多的場(chǎng)景。
- uv 適合現(xiàn)代 Python 項(xiàng)目開(kāi)發(fā)、自動(dòng)化、依賴(lài)隔離和快速部署。
總結(jié)與選擇建議
- conda:適合科學(xué)計(jì)算、跨語(yǔ)言依賴(lài)、需管理底層庫(kù)時(shí)用
- pip + venv/virtualenv:輕量項(xiàng)目、純 Python 項(xiàng)目首選
- uv:現(xiàn)代項(xiàng)目推薦,自動(dòng)識(shí)別依賴(lài),集成 pip/venv 優(yōu)點(diǎn)
- setup.py:老項(xiàng)目/需兼容傳統(tǒng) PyPI 分發(fā)時(shí)用
- pyproject.toml:新項(xiàng)目推薦,統(tǒng)一依賴(lài)和元數(shù)據(jù)聲明,配合 uv/poetry/setuptools 使用
到此這篇關(guān)于python常見(jiàn)環(huán)境管理工具的文章就介紹到這了,更多相關(guān)python環(huán)境管理工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django+uni-app實(shí)現(xiàn)數(shù)據(jù)通信中的請(qǐng)求跨域的示例代碼
這篇文章主要介紹了Django+uni-app實(shí)現(xiàn)數(shù)據(jù)通信中的請(qǐng)求跨域的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Python一行代碼可直接使用最全盤(pán)點(diǎn)
本文盤(pán)點(diǎn)一些Python中常用的一行(不限于一行)代碼,可直接用在日常編碼實(shí)踐中,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
機(jī)器學(xué)習(xí)10大經(jīng)典算法詳解
這篇文章主要為大家詳細(xì)介紹了機(jī)器學(xué)習(xí)10大經(jīng)典算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
PyCharm之如何設(shè)置自動(dòng)換行問(wèn)題
這篇文章主要介紹了PyCharm之如何設(shè)置自動(dòng)換行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Python?requests下載文件的幾種常用方法(附代碼)
這篇文章主要介紹了五種下載方式的實(shí)現(xiàn)方法,包括基礎(chǔ)下載、大文件分塊下載、帶有斷點(diǎn)續(xù)傳的下載、帶有超時(shí)和重試的下載以及完整的下載器實(shí)現(xiàn),文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2025-03-03
Python調(diào)用PC攝像頭實(shí)現(xiàn)掃描二維碼
PC攝像機(jī)掃描二維碼的應(yīng)用場(chǎng)景很廣泛,可以應(yīng)用于各種需要快速掃描、識(shí)別和管理的場(chǎng)景,本文就來(lái)具體講講如何用Python實(shí)現(xiàn)這一功能吧2023-05-05
python 循環(huán)讀取txt文檔 并轉(zhuǎn)換成csv的方法
今天小編就為大家分享一篇python 循環(huán)讀取txt文檔 并轉(zhuǎn)換成csv的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10

