找回密码
 会员注册
查看: 25|回复: 0

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

[复制链接]

8

主题

0

回帖

25

积分

新手上路

积分
25
发表于 2024-9-13 10:16:44 | 显示全部楼层 |阅读模式
笔者在之前的python学习中,对于python环境的配置一直基于非常浅层次的理解,仅仅是在网络上搜集罗列各种代码然后当cv工程师配置,于是对于python各种环境的配置原理不清楚。这种环境配置对于解决课程问题绰绰有余,但是当笔者开始学习机器学习的时候,发现版本不兼容以及环境冲突的问题让人不胜其扰。所以花时间去学习之前所有不理解的名词、方法的原理,并总结如下。12python环境python环境是指在一个特定的位置包含了Python解释器及其周围的工具、库和配置,他们共同构成了python程序执行的环境。python运行环境提供了执行python代码所需的一切支持。一般分为两种:全局环境和虚拟环境1.全局环境全局环境是指安装在操作系统上的python环境它是所有python程序的默认环境,除非特别指定使用其他环境修改全局环境会影响系统上所有使用这个python解释器的项目2.虚拟环境虚拟环境是一个独立的环境,可以有自己的python解释器和一组包它使得不同的项目可以有不同的依赖,不会相互干扰虚拟环境一般位于项目文件夹中,便于管理和迁移python环境的组成pyhon解释器python运行环境的核心是解释器,一般分为python2和python3开发工具开发和调试的工具,包括集成开发环境(IDE)Pycharm,VisualStudioCode,JupyterNotebook等等包集合包括python解释器里自带的包和第三方包,第三方包我们一般使用包管理器pip来安装包管理安装,更新,卸载,管理第三方库的依赖,最广泛使用的是pip。问题出现全局环境出现的问题就是,在运行不同的python项目的时候,所需要的python解释器的版本可能不同,所用的第三方库的版本不兼容,pip安装的大量第三方库文件紊乱繁杂,造成环境冲突,import外部包的时候各种报错。常见报错信息如下:“ImportError”ImportError:numpy.core.multiarrayfailedtoimport1解决方法对于每一个特定要求的项目创建一个虚拟环境。推荐使用anaconda工具来创建AnacondaAnaconda是一个可以对虚拟环境进行统一管理的python发行版工具。优势预装了很多常用的科学计算和数据分析库,例如Numpy,Pandas,Scipy,Matplotlib等等,常用于数据分析和机器学习领域。(无需再用pip进行安装)集成了Jupyter和Spider等集成开发环境,使用方便。最重要的是,有一个叫conda的包管理器,同时也是一个环境管理器。一般可以通过Anacondaprompt(在windows系统中,在mac和linux系统中是终端)。pip和conda的区别conda能够更方便的进行环境管理,能轻松的在不同环境中切换pip对于python包的版本更新、回退、卸载等等将影响系统python,影响所有使用系统python环境的python程序。conda在不同路径更改包,不会影响系统自带包。pip不会进行依赖项检查,安装包的时候可能会直接忽略依赖项安装,仅在结果中提示错误。conda会列出所需其他依赖包,安装包时候自动安装其依赖项,可以在包的不同版本中自由的切换。4.conda不仅仅适用于python语言。总而言之,conda结合了pip和virtualenv的功能,可以更便捷地管理包和虚拟环境。conda的基本操作一般不建议使用图形化操作界面,因为比较卡。命令行式操作界面会比较丝滑(也比较能装逼(狗头在windows操作系统下,使用AnacondaPrompt即可进入conda命令行操作界面1.虚拟环境的管理①创建虚拟环境可以指定python版本和要安装的包condacreate-nenv_namepython=versionpackage_names1②查看虚拟环境列表condaenvlist1③激活虚拟环境condaactivateenv_name1可以看到前面的括号内改成了我的env_name,说明该环境已经激活成功④修改环境名称conda没办法直接修改,但是可以通过复制原环境到新环境再删除原环境来"曲线救国"。经笔者之后学习发现,可以直接用代码更改condarename-n旧新1先激活旧环境,在旧环境中创建新环境复制原环境到新环境condaactivatenew_namecondaenvexport>environment.ymlcondaenvupdate--fileenvironment.yml123删除原始环境condaremove-nold_name--all1再次检查envlist重命名成功⑤退出当前虚拟环境condadeactivate1⑥删除虚拟环境condaremove-nenv_name--all12.包管理给特定虚拟环境安装依赖包,首先要先激活该虚拟环境①安装包condainstallpackage_name1可以在后面加上==指定包的版本②列出所有包condalist1③更新包condaupdatepackage_name1一次性更新所有包condaupdate--all1④删除包condaremovepackage_name1⑤查找包condasearchkeyword1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 12:31 , Processed in 1.168460 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表