在对人工智能的学习中,我们往往会用到python标准库中没有的包。那么如何下载包,管理包成了我们的一个问题。不用担心,本篇文章将为大家介绍如何去操作。
相信搜到这篇文章的朋友已经安装完Anaconda和pycharm了,如果还未安装,可自行csdn一下。
什么是虚拟环境?我为大家举一个例子。一个python项目A需要某个包的1.0版本,但你不满足于做一个项目,同时又做了一个python项目B,但是这个项目B需要同样包的2.0版本,这就导致了冲突。我们总不能做项目A时降版本,做项目B时升版本吧。于是人们便提出了一种用于存放包的容器——虚拟环境(virtual environment)。而Anaconda就是一个包和环境的管理器,其中含有超过7500个开源包,为我们提供了强大的后盾。
首先,我们按下键盘上的Win键和R键,调出运行框,并在其中输入“cmd”。
按下确定后,我们黑色的命令行就调出来了。
现在,我们创建一个名为newenv(new environment的缩写)的虚拟环境。当然,环境的名字可以按自己的想法起。这里后面加了一句关于环境中python版本的语句,规定了python的版本为3.9。大家也可自行选择。
conda create --name newenv python=3.9
按下回车键后,如下所示。
这里它询问我们是否进行(Proceed)我们按下y(yes)和回车
等进度条跑完,我们的环境就创建好了,Anaconda还贴心地为我们安装了一些基础的包管理工具。
安装完后我们发现咋什么都没发生。听我说,你先别急。如果我们想对创建的虚拟环境进行操作,我们需要先激活它。因为默认情况下我们是在基础环境中的。于是我们输入:
conda env list
按下回车键后,如下所示。
这句话的意思是显示我们系统中所有的虚拟环境,可以看到我有一些以前就已经创建了的虚拟环境。
我们想要激活新创建的环境newenv,我们可以输入:
activate newenv
按下回车键后,如下所示。
可以看到左面变化了,多出来一个(newenv),说明我们进入了newenv环境,接下来我们所有的操作都是在这个环境里运行的。
如果我们想看环境中有那些包,可以输入:
conda list
按下回车键后,如下所示。
可以看见Anaconda帮我们安装了一些基础包。
如果我们想要退出这个虚拟环境了,我们可以输入:
deactivate
如果我们不喜欢这个虚拟环境了,喜新厌旧了,我们就要删除它。输入:
conda remove -n newenv --all
newenv的位置就是我们要删除的环境的名字。
按下回车键后,如下所示。
和往常一样,它很礼貌地问了我们是否继续进行。我们输入y并按下回车。
再次查询当前系统下的虚拟环境,我们发现newenv已经不存在了。
我们创建好虚拟环境后,就可以在激活环境的情况下在环境内安装包了。假设我们现在需要安装numpy包,我们使用pip工具来安装包,输入:
pip install numpy
按下回车后即可开始安装。但是这种情况下我们有可能会安装失败,因为它默认使用的是国外的服务器。我们可以通过更换镜像源来切换到国内的服务器:
pip install numpy -i https://pypi.douban.com/simple/
或者是
pip install -i https://pypi.douban.com/simple/ numpy
这里我们更换到的是国内的豆瓣源,当然,还有其他镜像源供我们使用。
清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/
这两个都是比较好用的源,如果大家需要使用其他源,再自行csdn即可。
按下回车键后,如下所示。
报错了?不要慌,让我们看看它说了什么。
ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
ERROR: pip的依赖项解析器目前没有考虑到已安装的所有包。此行为是以下依赖关系冲突的根源。
这里提到了“依赖”这个概念,实际上,包与包之间也是有依赖关系的。使用A包的x版本你也必须得安装B包的y版本。由此可见建立虚拟环境的重要性。
我们只需要将它要求我们安装的包一五一十地安装就行了, 如:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple " google-auth<3,>=1.6.3"
按下回车键后,如下所示。
之后比着葫芦画瓢把剩余的依赖包都安装好就行了。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "google-auth<3,>=1.6.3"
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "grpcio>=1.24.3"
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "markdown>=2.6.8"
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "protobuf<3.20,>=3.9.2"
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "typing-extensions>=3.6.2.1"
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "matplotlib>=2.1.0"
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "flatbuffers"
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "protobuf<=3.20.1,>=3.12.2"
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "typing-extensions>=3.6.2.1"
pip install -i https://pypi.douban.com/simple/ "werkzeug>=1.0.1"
接着我们查看一下环境中的包:
可以看到numpy以及一些依赖包已经安装进虚拟环境了。
这就很简单了,比如我们想把numpy删除,如下输入:
pip uninstall numpy
按下回车键后,如下所示。
我们再次查看一下环境中的包,可以看到numpy已经被删除了。
Anaconda中conda的语句以及pip的语句不止这些,如果大家有其他需求如升级包,搜索包等,可以自行在csdn上搜索。