最近在初学python,要用到mxnet这个库,但是之前弄了好久都没成功,现在成功了就复盘一下整个过程。
整个过程分为4步,分别是下载Anaconda,用Anaconda下载mxnet(GPU版本),补充mxnet的CPU版本,下载Pycharm并添加解释器(interpret)。
这里先解释一下,之前直接下载了mxnet,但不知道为什么总是出错,因此自己整了一条弯路。在开始之前,请检查自己的cuda版本,如果不知道怎么查看,可以去下面的网站。
https://blog.csdn.net/didiaopao/article/details/119787139?spm=1001.2014.3001.5501
一、安装Anaconda
Anaconda作为一个好用的工具,可以用来下载许多预设好的包,包括mxnet。因此,在Anaconda官网处选择对应版本的Anaconda包下载。
现在好之后打开对应的安装文件(我的是Anaconda3-2022.05-Windows-x86_64.exe,和上面截图相对应)。
点击 next。
点击 I agree。
下一个选项是关于Anaconda的用户权限的,如果电脑有多个用户的话根据需要选择仅自己可用还是所有用户可用,这里选择 just me,并点击 next。
下一步是选择安装路径,点击 Browse ,选择Anaconda安装的位置(建议不要在系统盘安装Anaconda,而是在其他盘里面新建一个文件夹放Anaconda,路径后面会用到),路径选择好之后点击 next。
下面这里第一个选项是询问是否允许其他软件Pycharm等python工具自动将Anaconda作为系统主要的python版本,这和我们后面的需求相同,因此勾上。第二个选项是Anaconda的默认python版本设置为3.9,除非你打算使用多个版本的Anaconda或者多个版本的Python,否则便勾选“Register Anaconda as my default Python 3.8”。点击“Install”开始安装。如果想要查看安装细节,则可以点击“Show Details”。
安装结束后点击 next,并且把最后的两个√取消掉Anaconda就安装好了(实际上就是两个网页,了解Anaconda云和Anaconda支持的)。
二、mxnet库安装
打开下载好的Anaconda文件,可以看到有一系列的文件,注意到envs这个文件,后续的操作都是在里面进行。
点击wins键或者左下角的windows标记并打开Anaconda prompt这个终端,我们通过这个终端创建虚拟环境并下载mxnet。
这里先简单介绍一下原理:在终端中输入以下代码:
conda env list
可以看到除了默认的base环境之外,我还有gluon和pytorch两个环境,这与我envs文件夹里面有的两个文件夹是对应的。
那么这些环境是什么关系呢?答案是平行的关系,每个环境都是独立的,你在A环境中添加的库,B环境中不一定有,这样子可以方便不同情况下对库的不同需求,相当于减少了对空间的需求。
为了方便后续的处理,我们单独的在新的环境下(新建环境名称为mxnet)代码如下:
conda create -n mxnet python=3.6
conda activate mxnet
上面代码的含义是:第一句创建了一个名为mxnet的python语言为3.6版本的环境 (这句代码输入后有一个询问,选择y就可以),而第二句从base环境中进入了mxnet环境,现在再次重复env list这一代码,可以看到:
相比于之前的环境,我们多了一个名为mxnet的环境,在Anacando文件夹的envs文件中也多了一个同名文件,这表明环境创建成功了。(小测试:如何从mxnet环境中返回到base环境?)
创建好了环境之后,我们就需要在mxnet环境中下载mxnet库了,因为直接下载会用国外的源下载,速度较慢,因此我们现在改用清华的源下载mxnet库,代码如下:
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
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
修改完成之后,通过下面的代码下载mxnet库:
pip install mxnet-cu100
这里的cu100对应的是cuda10.0,根据自己cuda的版本来下载对应的mxnet版本。如果这一步报一堆红字的错误,请检查是否python版本与mxnet的版本不对应,或者cuda版本与mxnet版本不对应。
下载完之后,我们做一个简单地检查,打开Anaconda\envs\mxnet文件夹,并打开里面的python.exe,输入以下代码:
import mxnet
到这里mxnet的GPU版本下载就算成功了,这个问题的出现是因为没有下载CPU版本的mxnet,问题的解决就在下一部分。
三、 mxnet的CPU部分下载
在Anaconda prompt的对应环境中输入代码:
pip install mxnet==1.6.0
接下来我们做个检查,再次打开mxnet环境下的python文件,输入以下代码:
import mxnet
输出结果如下,表明mxnet在该环境下下载成功(输入代码后没有报错):
到这一步,mxnet的安装就彻底完成了,接下来我们就只需要把该环境下的python作为解释器加入到Pycharm中去即可使用mxnet库了。
四、在Pycharm中添加解释器
首先,我们需要下载Pycharm,打开官网,下载Windows下的社区版。
下载好之后打开安装包,点击 next。
选择好安装位置后点击 next。
把所有的√都打上, 点击next。
安装好之后点击finish就完成安装了(√哪个无所谓)。
打开Pycharm后新建工程(New Project),按 create创建新的工程,进入后界面如下:
直接输入代码:
import mxnet
会报错,这是因为我们还没有添加解释器,原来的解释器不能理解mxnet这个库的含义。
要添加解释器,点击右下角的Python 3.6(pythonProject1) ,并点击 add interpret
打开后进入如下界面,并依次修改以下内容:
1.解释器的环境类型(Conda,对应Anaconda)
2.选择已存在的环境(之前创造的mxnet,我用glad是因为mxnet环境出了点小问题)
3.把解释器路径修改为Anaconda\envs\mxnet\下的python.exe文件
修改完成后重复运行代码,发现之前的报错消失了,证明mxnet库已经成功加入Pycharm的解释器之中,之后就可以用mxnet进行开发和学习了。
五、总结
虽然本文仅针对mxnet库,但通过Anaconda下载其他库并加入到Pycharm的解释器中的过程与该方法相同,希望此文能够帮助到有类似问题的程序员。
六、鸣谢
在解决这个问题的过程中,我参考了许多文章,现在将这些文章的链接放在下面,并对其作者表示感谢:
1.Anaconda部分:
保姆级教学:https://blog.csdn.net/didiaopao/article/details/119787139?spm=1001.2014.3001.5501
mxnet的下载:
https://blog.csdn.net/qq_43644413/article/details/122026360
2.CPU部分的下载:
https://blog.csdn.net/wenqi1/article/details/122487650
感谢以上文章的指导,让我在忙了两天之后终于安装好了环境,可以进行下一步的学习,也希望本文能够对其他程序员有所帮助。