解决python版本兼容,环境冲突的问题--Anaconda的使用

笔者在之前的python学习中,对于python环境的配置一直基于非常浅层次的理解,仅仅是在网络上搜集罗列各种代码然后当cv工程师配置,于是对于python各种环境的配置原理不清楚。
这种环境配置对于解决课程问题绰绰有余,但是当笔者开始学习机器学习的时候,发现版本不兼容以及环境冲突的问题让人不胜其扰。所以花时间去学习之前所有不理解的名词、方法的原理,并总结如下。

python环境

python环境是指在一个特定的位置包含了Python解释器及其周围的工具、库和配置,他们共同构成了python程序执行的环境。
python运行环境提供了执行python代码所需的一切支持。
一般分为两种: 全局环境和虚拟环境

1.全局环境

  • 全局环境是指安装在操作系统上的python环境
  • 它是所有python程序的默认环境,除非特别指定使用其他环境
  • 修改全局环境会影响系统上所有使用这个python解释器的项目

2.虚拟环境

  • 虚拟环境是一个独立的环境,可以有自己的python解释器和一组包
  • 它使得不同的项目可以有不同的依赖,不会相互干扰
  • 虚拟环境一般位于项目文件夹中,便于管理和迁移

python环境的组成

pyhon解释器
python运行环境的核心是解释器,一般分为python2和python3

开发工具
开发和调试的工具,包括集成开发环境(IDE)Pycharm,Visual Studio Code,Jupyter Notebook 等等

包集合
包括python解释器里自带的包和第三方包,第三方包我们一般使用包管理器pip来安装

包管理
安装,更新,卸载,管理第三方库的依赖,最广泛使用的是pip。

问题出现

全局环境出现的问题就是,在运行不同的python项目的时候,所需要的python解释器的版本可能不同,所用的第三方库的版本不兼容,pip安装的大量第三方库文件紊乱繁杂,造成环境冲突,import外部包的时候各种报错。
常见报错信息如下:“ImportError”

ImportError: numpy.core.multiarray failed to import

解决方法

对于每一个特定要求的项目创建一个虚拟环境。

推荐使用anaconda工具来创建

Anaconda
Anaconda是一个可以对虚拟环境进行统一管理的python发行版工具。

优势

  1. 预装了很多常用的科学计算和数据分析库,例如Numpy,Pandas,Scipy,Matplotlib等等,常用于数据分析和机器学习领域。(无需再用pip进行安装)
  2. 集成了Jupyter和Spider等集成开发环境,使用方便。
  3. 最重要的是,有一个叫conda的包管理器,同时也是一个环境管理器。一般可以通过Anaconda prompt(在windows系统中,在mac和linux系统中是终端)。

pip和conda的区别

  1. conda能够更方便的进行环境管理,能轻松的在不同环境中切换
  2. pip对于python包的版本更新、回退、卸载等等将影响系统python,影响所有使用系统python环境的python程序。
    conda在不同路径更改包,不会影响系统自带包。
  3. pip不会进行依赖项检查,安装包的时候可能会直接忽略依赖项安装,仅在结果中提示错误。
    conda会列出所需其他依赖包,安装包时候自动安装其依赖项,可以在包的不同版本中自由的切换。
    4.conda不仅仅适用于python语言。

总而言之,conda结合了pip和virtualenv的功能,可以更便捷地管理包和虚拟环境。

conda的基本操作

一般不建议使用图形化操作界面,因为比较卡。命令行式操作界面会比较丝滑(也比较能装逼(狗头

在windows操作系统下,使用Anaconda Prompt即可进入conda命令行操作界面
进入conda操作界面

1.虚拟环境的管理

① 创建虚拟环境
可以指定python版本和要安装的包

conda create -n env_name python=version package_names

②查看虚拟环境列表

conda env list

查看虚拟环境列表③激活虚拟环境

conda activate env_name

可以看到前面的括号内改成了我的env_name,说明该环境已经激活成功

④ 修改环境名称
conda没办法直接修改,但是可以通过复制原环境到新环境再删除原环境来"曲线救国"。

经笔者之后学习发现,可以直接用代码更改

conda rename -n 旧 新

先激活旧环境,在旧环境中创建新环境

创建新环境

复制原环境到新环境

conda activate new_name
conda env export > environment.yml
conda env update --file environment.yml

在这里插入图片描述

删除原始环境

conda remove -n old_name --all

再次检查env list
在这里插入图片描述
重命名成功

⑤退出当前虚拟环境

conda deactivate

⑥删除虚拟环境

 conda remove -n env_name --all 

2.包管理

给特定虚拟环境安装依赖包,首先要先激活该虚拟环境
①安装包

conda install package_name

可以在后面加上==指定包的版本

②列出所有包

conda list

③更新包

conda update package_name

一次性更新所有包

conda update --all

④删除包

conda remove package_name

⑤查找包

conda search keyword
  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值