Python虚拟环境与Conda使用指南分享

 更新时间:2025年06月13日 14:17:20   作者:jieyucx  
这篇文章主要介绍了Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

在 Python 开发中,我们常常会面临这样的问题:不同项目可能依赖于同一库的不同版本,或者某些项目需要特定的 Python 解释器版本。

如果将所有的包都安装在全局环境中,可能会导致版本冲突,影响项目的正常运行。为了解决这些问题,Python 引入了虚拟环境的概念,而 Conda 则是一个功能强大的包和环境管理工具,能帮助我们更方便地创建和管理虚拟环境。

本文将详细介绍 Python 虚拟环境的概念、Conda 的使用以及一些常用命令。

一、Python 虚拟环境概述

1.1 什么是虚拟环境

虚拟环境是 Python 提供的一种将项目的依赖项隔离开来的机制。它可以创建一个独立的 Python 环境,每个环境都有自己独立的 Python 解释器和安装的包,互不干扰。这样,我们就可以在不同的虚拟环境中为不同的项目安装所需的特定版本的库,避免了全局环境中版本冲突的问题。

1.2 为什么需要虚拟环境

  • 避免版本冲突:不同项目可能依赖于同一库的不同版本,使用虚拟环境可以为每个项目提供独立的库版本。
  • 方便项目迁移:虚拟环境可以将项目的依赖项打包,方便在不同的机器上部署项目。
  • 保持全局环境整洁:只在全局环境中安装必要的工具,将项目的依赖项安装在虚拟环境中,使全局环境更加简洁。

二、Python 内置的虚拟环境工具 - venv

2.1 创建虚拟环境

Python 标准库中的 venv 模块可以用来创建虚拟环境。

在命令行中,使用以下命令创建一个名为 myenv 的虚拟环境:

python -m venv myenv

上述命令会在当前目录下创建一个名为 myenv 的文件夹,其中包含了独立的 Python 解释器和相关的脚本。

2.2 激活虚拟环境

  • Windows 系统
myenv\Scripts\activate
  • Linux 和 macOS 系统
source myenv/bin/activate

激活虚拟环境后,命令行的提示符会发生变化,显示当前使用的虚拟环境名称。

2.3 安装和管理包

激活虚拟环境后,使用 pip 安装的包将只安装在该虚拟环境中,不会影响全局环境。

例如,安装 numpy

pip install numpy

2.4 停用虚拟环境

当你完成项目开发后,可以使用以下命令停用虚拟环境:

deactivate

三、Conda 简介

3.1 什么是 Conda

Conda 是一个开源的包和环境管理系统,可在 Windows、macOS 和 Linux 上运行。它不仅可以管理 Python 包,还可以管理其他语言的包,如 R、Java 等。Conda 可以创建、保存、加载和切换不同的虚拟环境,并且可以快速安装、更新和卸载包。

3.2 安装 Conda

Conda 有两种版本:Anaconda 和 Miniconda。Anaconda 是一个包含了大量科学计算和数据分析库的发行版,安装包较大;Miniconda 则是一个轻量级的发行版,只包含了 Conda 和 Python 解释器。你可以根据自己的需求选择合适的版本进行安装。

  • Anaconda:从 Anaconda 官方网站 下载适合你操作系统的安装包,然后按照安装向导进行安装。
  • Miniconda:从 Miniconda 官方网站 下载适合你操作系统的安装包,然后按照安装向导进行安装。

国内镜像https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D

四、Conda 的常用命令

4.1 环境管理

  • 创建新环境:创建一个名为 mycondaenv 的 Python 3.8 环境:
conda create -n mycondaenv python=3.8
  • 激活环境

Windows 系统

conda activate mycondaenv

 **Linux 和 macOS 系统**:同样使用上述命令激活环境。

  • 列出所有环境
conda env list
  • 停用环境
conda deactivate
  • 删除环境
conda env remove -n mycondaenv

4.2 包管理

  • 安装包:在激活的环境中安装 pandas
conda install pandas
  • 更新包:更新 pandas 到最新版本:
conda update pandas
  • 卸载包:卸载 pandas
conda remove pandas
  • 搜索包:搜索名为 scikit-learn 的包:
conda search scikit-learn

4.3 查看环境信息

  • 查看当前环境安装的所有包
conda list
  • 查看 Conda 配置信息
conda config --show

4.4 设置镜像源

由于 Conda 的默认镜像源在国外,下载速度可能较慢。可以设置国内的镜像源来提高下载速度。

以清华大学镜像源为例:

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 标准库的一部分,主要用于创建和管理 Python 虚拟环境。
  • Conda 不仅可以管理 Python 虚拟环境,还可以管理其他语言的包和环境,功能更强大。

5.2 包管理

  • venv 使用 pip 来管理 Python 包,对于非 Python 包的支持较差。
  • Conda 有自己的包管理系统,能够处理各种语言的包,并且可以自动解决包之间的依赖关系。

5.3 安装和使用复杂度

  • venv 是 Python 内置的工具,无需额外安装,使用简单。
  • Conda 需要单独安装,安装包较大,但提供了更丰富的功能和更便捷的环境管理。

总结

Python 虚拟环境是解决项目依赖冲突的有效手段,而 Conda 作为一个强大的包和环境管理工具,为我们提供了更加便捷的虚拟环境管理和包管理方式。

无论是使用 Python 内置的 venv 还是 Conda,都可以根据项目的需求和个人的喜好来选择。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python flask框架实现重定向功能示例

    python flask框架实现重定向功能示例

    这篇文章主要介绍了python flask框架实现重定向功能,结合实例形式分析了flask框架重定向功能的实现与使用方法,需要的朋友可以参考下
    2019-07-07
  • 用Python写一个自动木马程序

    用Python写一个自动木马程序

    这篇文章主要介绍了用Python写一个自动木马程序的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Python三维绘图之Matplotlib库的使用方法

    Python三维绘图之Matplotlib库的使用方法

    这篇文章主要给大家介绍了关于Python三维绘图之Matplotlib库的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python爬虫抓取豆瓣TOP250数据从分析到实践的全过程(详细图解)

    Python爬虫抓取豆瓣TOP250数据从分析到实践的全过程(详细图解)

    本文介绍了使用Python爬取豆瓣电影Top250数据的方法,首先验证了目标数据在页面源代码中,然后通过requests模块获取页面内容,添加请求头绕过反爬机制,接着使用re模块编写正则表达式,采用惰性匹配模式提取信息,通过循环实现翻页爬取,将10页共250条数据保存为CSV文件
    2025-10-10
  • 解决python 打包成exe太大的问题

    解决python 打包成exe太大的问题

    这篇文章主要介绍了解决python 打包成exe太大的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python科学画图代码分享

    Python科学画图代码分享

    这篇文章主要介绍了Python科学画图代码分享,涉及matplotlib库的简单介绍,分享了matplotlib绘图库书籍的下载地址,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 六种酷炫Python运行进度条效果的实现代码

    六种酷炫Python运行进度条效果的实现代码

    这篇文章主要介绍了六种酷炫Python运行进度条的实现代码,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • PyTorch中的神经网络 Mnist 分类任务

    PyTorch中的神经网络 Mnist 分类任务

    这篇文章主要介绍了PyTorch中的神经网络 Mnist 分类任务,在本次的分类任务当中,我们使用的数据集是 Mnist 数据集,这个数据集大家都比较熟悉,需要的朋友可以参考下
    2023-03-03
  • python传到前端的数据,双引号被转义的问题

    python传到前端的数据,双引号被转义的问题

    这篇文章主要介绍了python传到前端的数据,双引号被转义的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 使用SQLAlchemy操作数据库表过程解析

    使用SQLAlchemy操作数据库表过程解析

    这篇文章主要介绍了使用SQLAlchemy操作数据库表过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06

最新评论