Python虛擬環(huán)境與Conda使用指南分享
在 Python 開發(fā)中,我們常常會面臨這樣的問題:不同項(xiàng)目可能依賴于同一庫的不同版本,或者某些項(xiàng)目需要特定的 Python 解釋器版本。
如果將所有的包都安裝在全局環(huán)境中,可能會導(dǎo)致版本沖突,影響項(xiàng)目的正常運(yùn)行。為了解決這些問題,Python 引入了虛擬環(huán)境的概念,而 Conda 則是一個功能強(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)隔離開來的機(jī)制。它可以創(chuàng)建一個獨(dú)立的 Python 環(huán)境,每個環(huán)境都有自己獨(dú)立的 Python 解釋器和安裝的包,互不干擾。這樣,我們就可以在不同的虛擬環(huán)境中為不同的項(xiàng)目安裝所需的特定版本的庫,避免了全局環(huán)境中版本沖突的問題。
1.2 為什么需要虛擬環(huán)境
- 避免版本沖突:不同項(xiàng)目可能依賴于同一庫的不同版本,使用虛擬環(huán)境可以為每個項(xiàng)目提供獨(dú)立的庫版本。
- 方便項(xiàng)目遷移:虛擬環(huán)境可以將項(xiàng)目的依賴項(xiàng)打包,方便在不同的機(jī)器上部署項(xiàng)目。
- 保持全局環(huán)境整潔:只在全局環(huán)境中安裝必要的工具,將項(xiàng)目的依賴項(xiàng)安裝在虛擬環(huán)境中,使全局環(huán)境更加簡潔。
二、Python 內(nèi)置的虛擬環(huán)境工具 - venv
2.1 創(chuàng)建虛擬環(huán)境
Python 標(biāo)準(zhǔn)庫中的 venv 模塊可以用來創(chuàng)建虛擬環(huán)境。
在命令行中,使用以下命令創(chuàng)建一個名為 myenv 的虛擬環(huán)境:
python -m venv myenv
上述命令會在當(dāng)前目錄下創(chuàng)建一個名為 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)境后,命令行的提示符會發(fā)生變化,顯示當(dāng)前使用的虛擬環(huán)境名稱。
2.3 安裝和管理包
激活虛擬環(huán)境后,使用 pip 安裝的包將只安裝在該虛擬環(huán)境中,不會影響全局環(huán)境。
例如,安裝 numpy:
pip install numpy
2.4 停用虛擬環(huán)境
當(dāng)你完成項(xiàng)目開發(fā)后,可以使用以下命令停用虛擬環(huán)境:
deactivate
三、Conda 簡介
3.1 什么是 Conda
Conda 是一個開源的包和環(huán)境管理系統(tǒng),可在 Windows、macOS 和 Linux 上運(yùn)行。它不僅可以管理 Python 包,還可以管理其他語言的包,如 R、Java 等。Conda 可以創(chuàng)建、保存、加載和切換不同的虛擬環(huán)境,并且可以快速安裝、更新和卸載包。
3.2 安裝 Conda
Conda 有兩種版本:Anaconda 和 Miniconda。Anaconda 是一個包含了大量科學(xué)計(jì)算和數(shù)據(jù)分析庫的發(fā)行版,安裝包較大;Miniconda 則是一個輕量級的發(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)行安裝。
國內(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)建一個名為
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)鏡像源在國外,下載速度可能較慢??梢栽O(shè)置國內(nè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)庫的一部分,主要用于創(chuàng)建和管理 Python 虛擬環(huán)境。- Conda 不僅可以管理 Python 虛擬環(huán)境,還可以管理其他語言的包和環(huán)境,功能更強(qiáng)大。
5.2 包管理
venv使用pip來管理 Python 包,對于非 Python 包的支持較差。- Conda 有自己的包管理系統(tǒng),能夠處理各種語言的包,并且可以自動解決包之間的依賴關(guān)系。
5.3 安裝和使用復(fù)雜度
venv是 Python 內(nèi)置的工具,無需額外安裝,使用簡單。- Conda 需要單獨(dú)安裝,安裝包較大,但提供了更豐富的功能和更便捷的環(huán)境管理。
總結(jié)
Python 虛擬環(huán)境是解決項(xiàng)目依賴沖突的有效手段,而 Conda 作為一個強(qiáng)大的包和環(huán)境管理工具,為我們提供了更加便捷的虛擬環(huán)境管理和包管理方式。
無論是使用 Python 內(nèi)置的 venv 還是 Conda,都可以根據(jù)項(xiàng)目的需求和個人的喜好來選擇。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python flask框架實(shí)現(xiàn)重定向功能示例
這篇文章主要介紹了python flask框架實(shí)現(xiàn)重定向功能,結(jié)合實(shí)例形式分析了flask框架重定向功能的實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2019-07-07
Python爬蟲抓取豆瓣TOP250數(shù)據(jù)從分析到實(shí)踐的全過程(詳細(xì)圖解)
本文介紹了使用Python爬取豆瓣電影Top250數(shù)據(jù)的方法,首先驗(yàn)證了目標(biāo)數(shù)據(jù)在頁面源代碼中,然后通過requests模塊獲取頁面內(nèi)容,添加請求頭繞過反爬機(jī)制,接著使用re模塊編寫正則表達(dá)式,采用惰性匹配模式提取信息,通過循環(huán)實(shí)現(xiàn)翻頁爬取,將10頁共250條數(shù)據(jù)保存為CSV文件2025-10-10
六種酷炫Python運(yùn)行進(jìn)度條效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了六種酷炫Python運(yùn)行進(jìn)度條的實(shí)現(xiàn)代碼,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(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ù)集,這個數(shù)據(jù)集大家都比較熟悉,需要的朋友可以參考下2023-03-03
python傳到前端的數(shù)據(jù),雙引號被轉(zhuǎn)義的問題
這篇文章主要介紹了python傳到前端的數(shù)據(jù),雙引號被轉(zhuǎn)義的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
使用SQLAlchemy操作數(shù)據(jù)庫表過程解析
這篇文章主要介紹了使用SQLAlchemy操作數(shù)據(jù)庫表過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

