Python虛擬環(huán)境與Conda使用指南分享
在 Python 開(kāi)發(fā)中,我們常常會(huì)面臨這樣的問(wèn)題:不同項(xiàng)目可能依賴于同一庫(kù)的不同版本,或者某些項(xiàng)目需要特定的 Python 解釋器版本。
如果將所有的包都安裝在全局環(huán)境中,可能會(huì)導(dǎo)致版本沖突,影響項(xiàng)目的正常運(yùn)行。為了解決這些問(wèn)題,Python 引入了虛擬環(huán)境的概念,而 Conda 則是一個(gè)功能強(qiáng)大的包和環(huán)境管理工具,能幫助我們更方便地創(chuàng)建和管理虛擬環(huán)境。
本文將詳細(xì)介紹 Python 虛擬環(huán)境的概念、Conda 的使用以及一些常用命令。
一、Python 虛擬環(huán)境概述
1.1 什么是虛擬環(huán)境
虛擬環(huán)境是 Python 提供的一種將項(xiàng)目的依賴項(xiàng)隔離開(kāi)來(lái)的機(jī)制。它可以創(chuàng)建一個(gè)獨(dú)立的 Python 環(huán)境,每個(gè)環(huán)境都有自己獨(dú)立的 Python 解釋器和安裝的包,互不干擾。這樣,我們就可以在不同的虛擬環(huán)境中為不同的項(xiàng)目安裝所需的特定版本的庫(kù),避免了全局環(huán)境中版本沖突的問(wèn)題。
1.2 為什么需要虛擬環(huán)境
- 避免版本沖突:不同項(xiàng)目可能依賴于同一庫(kù)的不同版本,使用虛擬環(huán)境可以為每個(gè)項(xiàng)目提供獨(dú)立的庫(kù)版本。
- 方便項(xiàng)目遷移:虛擬環(huán)境可以將項(xiàng)目的依賴項(xiàng)打包,方便在不同的機(jī)器上部署項(xiàng)目。
- 保持全局環(huán)境整潔:只在全局環(huán)境中安裝必要的工具,將項(xiàng)目的依賴項(xiàng)安裝在虛擬環(huán)境中,使全局環(huán)境更加簡(jiǎn)潔。
二、Python 內(nèi)置的虛擬環(huán)境工具 - venv
2.1 創(chuàng)建虛擬環(huán)境
Python 標(biāo)準(zhǔn)庫(kù)中的 venv 模塊可以用來(lái)創(chuàng)建虛擬環(huán)境。
在命令行中,使用以下命令創(chuàng)建一個(gè)名為 myenv 的虛擬環(huán)境:
python -m venv myenv
上述命令會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)名為 myenv 的文件夾,其中包含了獨(dú)立的 Python 解釋器和相關(guān)的腳本。
2.2 激活虛擬環(huán)境
- Windows 系統(tǒng):
myenv\Scripts\activate
- Linux 和 macOS 系統(tǒng):
source myenv/bin/activate
激活虛擬環(huán)境后,命令行的提示符會(huì)發(fā)生變化,顯示當(dāng)前使用的虛擬環(huán)境名稱。
2.3 安裝和管理包
激活虛擬環(huán)境后,使用 pip 安裝的包將只安裝在該虛擬環(huán)境中,不會(huì)影響全局環(huán)境。
例如,安裝 numpy:
pip install numpy
2.4 停用虛擬環(huán)境
當(dāng)你完成項(xiàng)目開(kāi)發(fā)后,可以使用以下命令停用虛擬環(huán)境:
deactivate
三、Conda 簡(jiǎn)介
3.1 什么是 Conda
Conda 是一個(gè)開(kāi)源的包和環(huán)境管理系統(tǒng),可在 Windows、macOS 和 Linux 上運(yùn)行。它不僅可以管理 Python 包,還可以管理其他語(yǔ)言的包,如 R、Java 等。Conda 可以創(chuàng)建、保存、加載和切換不同的虛擬環(huán)境,并且可以快速安裝、更新和卸載包。
3.2 安裝 Conda
Conda 有兩種版本:Anaconda 和 Miniconda。Anaconda 是一個(gè)包含了大量科學(xué)計(jì)算和數(shù)據(jù)分析庫(kù)的發(fā)行版,安裝包較大;Miniconda 則是一個(gè)輕量級(jí)的發(fā)行版,只包含了 Conda 和 Python 解釋器。你可以根據(jù)自己的需求選擇合適的版本進(jìn)行安裝。
- Anaconda:從 Anaconda 官方網(wǎng)站 下載適合你操作系統(tǒng)的安裝包,然后按照安裝向?qū)нM(jìn)行安裝。
- Miniconda:從 Miniconda 官方網(wǎng)站 下載適合你操作系統(tǒng)的安裝包,然后按照安裝向?qū)нM(jìn)行安裝。
國(guó)內(nèi)鏡像https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D

四、Conda 的常用命令
4.1 環(huán)境管理
- 創(chuàng)建新環(huán)境:創(chuàng)建一個(gè)名為
mycondaenv的 Python 3.8 環(huán)境:
conda create -n mycondaenv python=3.8
- 激活環(huán)境:
Windows 系統(tǒng):
conda activate mycondaenv
**Linux 和 macOS 系統(tǒng)**:同樣使用上述命令激活環(huán)境。
- 列出所有環(huán)境:
conda env list
- 停用環(huán)境:
conda deactivate
- 刪除環(huán)境:
conda env remove -n mycondaenv
4.2 包管理
- 安裝包:在激活的環(huán)境中安裝
pandas:
conda install pandas
- 更新包:更新
pandas到最新版本:
conda update pandas
- 卸載包:卸載
pandas:
conda remove pandas
- 搜索包:搜索名為
scikit-learn的包:
conda search scikit-learn
4.3 查看環(huán)境信息
- 查看當(dāng)前環(huán)境安裝的所有包:
conda list
- 查看 Conda 配置信息:
conda config --show
4.4 設(shè)置鏡像源
由于 Conda 的默認(rèn)鏡像源在國(guó)外,下載速度可能較慢??梢栽O(shè)置國(guó)內(nèi)的鏡像源來(lái)提高下載速度。
以清華大學(xué)鏡像源為例:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes
五、venv 與 Conda 的比較
5.1 功能范圍
venv是 Python 標(biāo)準(zhǔn)庫(kù)的一部分,主要用于創(chuàng)建和管理 Python 虛擬環(huán)境。- Conda 不僅可以管理 Python 虛擬環(huán)境,還可以管理其他語(yǔ)言的包和環(huán)境,功能更強(qiáng)大。
5.2 包管理
venv使用pip來(lái)管理 Python 包,對(duì)于非 Python 包的支持較差。- Conda 有自己的包管理系統(tǒng),能夠處理各種語(yǔ)言的包,并且可以自動(dòng)解決包之間的依賴關(guān)系。
5.3 安裝和使用復(fù)雜度
venv是 Python 內(nèi)置的工具,無(wú)需額外安裝,使用簡(jiǎn)單。- Conda 需要單獨(dú)安裝,安裝包較大,但提供了更豐富的功能和更便捷的環(huán)境管理。
總結(jié)
Python 虛擬環(huán)境是解決項(xiàng)目依賴沖突的有效手段,而 Conda 作為一個(gè)強(qiáng)大的包和環(huán)境管理工具,為我們提供了更加便捷的虛擬環(huán)境管理和包管理方式。
無(wú)論是使用 Python 內(nèi)置的 venv 還是 Conda,都可以根據(jù)項(xiàng)目的需求和個(gè)人的喜好來(lái)選擇。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python flask框架實(shí)現(xiàn)重定向功能示例
這篇文章主要介紹了python flask框架實(shí)現(xiàn)重定向功能,結(jié)合實(shí)例形式分析了flask框架重定向功能的實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2019-07-07
用Python寫(xiě)一個(gè)自動(dòng)木馬程序
這篇文章主要介紹了用Python寫(xiě)一個(gè)自動(dòng)木馬程序的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
Python三維繪圖之Matplotlib庫(kù)的使用方法
這篇文章主要給大家介紹了關(guān)于Python三維繪圖之Matplotlib庫(kù)的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Python爬蟲(chóng)抓取豆瓣TOP250數(shù)據(jù)從分析到實(shí)踐的全過(guò)程(詳細(xì)圖解)
本文介紹了使用Python爬取豆瓣電影Top250數(shù)據(jù)的方法,首先驗(yàn)證了目標(biāo)數(shù)據(jù)在頁(yè)面源代碼中,然后通過(guò)requests模塊獲取頁(yè)面內(nèi)容,添加請(qǐng)求頭繞過(guò)反爬機(jī)制,接著使用re模塊編寫(xiě)正則表達(dá)式,采用惰性匹配模式提取信息,通過(guò)循環(huán)實(shí)現(xiàn)翻頁(yè)爬取,將10頁(yè)共250條數(shù)據(jù)保存為CSV文件2025-10-10
六種酷炫Python運(yùn)行進(jìn)度條效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了六種酷炫Python運(yùn)行進(jìn)度條的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
PyTorch中的神經(jīng)網(wǎng)絡(luò) Mnist 分類任務(wù)
這篇文章主要介紹了PyTorch中的神經(jīng)網(wǎng)絡(luò) Mnist 分類任務(wù),在本次的分類任務(wù)當(dāng)中,我們使用的數(shù)據(jù)集是 Mnist 數(shù)據(jù)集,這個(gè)數(shù)據(jù)集大家都比較熟悉,需要的朋友可以參考下2023-03-03
python傳到前端的數(shù)據(jù),雙引號(hào)被轉(zhuǎn)義的問(wèn)題
這篇文章主要介紹了python傳到前端的數(shù)據(jù),雙引號(hào)被轉(zhuǎn)義的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
使用SQLAlchemy操作數(shù)據(jù)庫(kù)表過(guò)程解析
這篇文章主要介紹了使用SQLAlchemy操作數(shù)據(jù)庫(kù)表過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

