Python虛擬環(huán)境與Conda的使用方式
Python 虛擬環(huán)境與 Conda 使用指南
在 Python 開發(fā)中,我們常常會面臨這樣的問題:不同項目可能依賴于同一庫的不同版本,或者某些項目需要特定的 Python 解釋器版本。
如果將所有的包都安裝在全局環(huán)境中,可能會導致版本沖突,影響項目的正常運行。
為了解決這些問題,Python 引入了虛擬環(huán)境的概念,而 Conda 則是一個功能強大的包和環(huán)境管理工具,能幫助我們更方便地創(chuàng)建和管理虛擬環(huán)境。
一、Python 虛擬環(huán)境概述
1.1 什么是虛擬環(huán)境
虛擬環(huán)境是 Python 提供的一種將項目的依賴項隔離開來的機制。
它可以創(chuàng)建一個獨立的 Python 環(huán)境,每個環(huán)境都有自己獨立的 Python 解釋器和安裝的包,互不干擾。
這樣,我們就可以在不同的虛擬環(huán)境中為不同的項目安裝所需的特定版本的庫,避免了全局環(huán)境中版本沖突的問題。
1.2 為什么需要虛擬環(huán)境
- 避免版本沖突:不同項目可能依賴于同一庫的不同版本,使用虛擬環(huán)境可以為每個項目提供獨立的庫版本。
- 方便項目遷移:虛擬環(huán)境可以將項目的依賴項打包,方便在不同的機器上部署項目。
- 保持全局環(huán)境整潔:只在全局環(huán)境中安裝必要的工具,將項目的依賴項安裝在虛擬環(huán)境中,使全局環(huán)境更加簡潔。
二、Python 內置的虛擬環(huán)境工具 - venv
2.1 創(chuàng)建虛擬環(huán)境
Python 標準庫中的 venv
模塊可以用來創(chuàng)建虛擬環(huán)境。
在命令行中,使用以下命令創(chuàng)建一個名為 myenv
的虛擬環(huán)境:
python -m venv myenv
上述命令會在當前目錄下創(chuàng)建一個名為 myenv
的文件夾,其中包含了獨立的 Python 解釋器和相關的腳本。
2.2 激活虛擬環(huán)境
- Windows 系統(tǒng):
myenv\Scripts\activate
- Linux 和 macOS 系統(tǒng):
source myenv/bin/activate
激活虛擬環(huán)境后,命令行的提示符會發(fā)生變化,顯示當前使用的虛擬環(huán)境名稱。
2.3 安裝和管理包
激活虛擬環(huán)境后,使用 pip
安裝的包將只安裝在該虛擬環(huán)境中,不會影響全局環(huán)境。
例如,安裝 numpy
:
pip install numpy
2.4 停用虛擬環(huán)境
當你完成項目開發(fā)后,可以使用以下命令停用虛擬環(huán)境:
deactivate
三、Conda 簡介
3.1 什么是 Conda
Conda 是一個開源的包和環(huán)境管理系統(tǒng),可在 Windows、macOS 和 Linux 上運行。它不僅可以管理 Python 包,還可以管理其他語言的包,如 R、Java 等。
Conda 可以創(chuàng)建、保存、加載和切換不同的虛擬環(huán)境,并且可以快速安裝、更新和卸載包。
3.2 安裝 Conda
Conda 有兩種版本:Anaconda 和 Miniconda。
Anaconda 是一個包含了大量科學計算和數(shù)據分析庫的發(fā)行版,安裝包較大;Miniconda 則是一個輕量級的發(fā)行版,只包含了 Conda 和 Python 解釋器。
你可以根據自己的需求選擇合適的版本進行安裝。
- Anaconda:從 Anaconda 官方網站 下載適合你操作系統(tǒng)的安裝包,然后按照安裝向導進行安裝。
- Miniconda:從 Miniconda 官方網站 下載適合你操作系統(tǒng)的安裝包,然后按照安裝向導進行安裝。
國內鏡像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)境信息
- 查看當前環(huán)境安裝的所有包:
conda list
- 查看 Conda 配置信息:
conda config --show
4.4 設置鏡像源
由于 Conda 的默認鏡像源在國外,下載速度可能較慢??梢栽O置國內的鏡像源來提高下載速度。
以清華大學鏡像源為例:
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 標準庫的一部分,主要用于創(chuàng)建和管理 Python 虛擬環(huán)境。- Conda 不僅可以管理 Python 虛擬環(huán)境,還可以管理其他語言的包和環(huán)境,功能更強大。
5.2 包管理
venv
使用pip
來管理 Python 包,對于非 Python 包的支持較差。- Conda 有自己的包管理系統(tǒng),能夠處理各種語言的包,并且可以自動解決包之間的依賴關系。
5.3 安裝和使用復雜度
venv
是 Python 內置的工具,無需額外安裝,使用簡單。- Conda 需要單獨安裝,安裝包較大,但提供了更豐富的功能和更便捷的環(huán)境管理。
總結
Python 虛擬環(huán)境是解決項目依賴沖突的有效手段,而 Conda 作為一個強大的包和環(huán)境管理工具,為我們提供了更加便捷的虛擬環(huán)境管理和包管理方式。無論是使用 Python 內置的 venv
還是 Conda,都可以根據項目的需求和個人的喜好來選擇。
希望本文能幫助你更好地理解和使用 Python 虛擬環(huán)境和 Conda,讓你的 Python 開發(fā)更加高效和順暢。以上為個人經驗,希望大家多多支持腳本之家。
相關文章
基于opencv和pillow實現(xiàn)人臉識別系統(tǒng)(附demo)
人臉識別就是一個程序能識別給定圖像或視頻中的人臉,本文主要介紹了opencv和pillow實現(xiàn)人臉識別系統(tǒng),本文不涉及分類器、訓練識別器等算法原理,感興趣的可以了解一下2021-11-11詳解Python的Django框架中manage命令的使用與擴展
這篇文章主要介紹了Python的Django框架中manage命令的使用與擴展,manage.py使得用戶借助manage命令在命令行中能實現(xiàn)諸多簡便的操作,需要的朋友可以參考下2016-04-04詳解Windows下PyCharm安裝Numpy包及無法安裝問題解決方案
這篇文章主要介紹了詳解Windows下PyCharm安裝Numpy包及無法安裝問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06Python 利用argparse模塊實現(xiàn)腳本命令行參數(shù)解析
這篇文章主要介紹了Python 利用argparse模塊實現(xiàn)腳本命令行參數(shù)解析,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12Python利用re模塊實現(xiàn)簡易分詞(tokenization)
分詞(tokenization)任務是Python字符串處理中最為常見任務了。本文將利用re模塊實現(xiàn)簡易tokenizer,文中的示例代碼講解詳細,需要的可以參考一下2022-04-04借助Paramiko通過Python實現(xiàn)linux遠程登陸及sftp的操作
這篇文章主要介紹了借助Paramiko通過Python實現(xiàn)linux遠程登陸及sftp,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03