这周分别给自己的电脑和公司的电脑重装了系统,重新走了一遍Anaconda,rpy2等等一系列各种魔鬼级报错的软件和包。因为当初不信邪,仗着自己是新系统,我把所有最“简单纯粹”的安装方法都试过了。这么说吧,出于对墨菲定律的尊敬,在这过程中可能/没可能遇到的报错,我都经历了一次(以至于我觉得自己系统又脏了想再重装)。最后选出的这个最优方案,可以优雅的一次搞定,十分lightweight, 在这里分享给大家。>v<
有一说一,这个教程应该是目前最最靠谱之一了。目前2020年4月1日,非常好用。
清华镜像下载Anaconda
地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
我两个设备一个从官网,另一个从清华镜像分别下载。区别是:官网那个在后续安装的时候不会提出帮忙安装vscode,而且官网的下载速度很慢(一个我吃了午饭还没下好,另一个秒下)。其他并没有什么特别影响后续操作的区别。
正常按指示安装,不过有几个地方需要注意下:
All users还是当前用户,这个根据需要选,电脑自己用的话可以All users
安装路径有几个需要注意的地方:①不要有中文和空格;②不要装在Program File里面,因为它有空格,以后有几个packages会安装不成功;③有的时候ProgramData这个文档会隐藏起来,所以如果之前ProgramData没有的话可以手动建一个,不然安完conda之后它藏起来了还得手动找;④改路径之后记得写Anaconda3,不然它就不给安
以我的两台电脑为例,安装路径分别是:
C:\ProgramData\Anaconda3
D:\ProgramData\Anaconda3
关于Add path这件事,有人说要加,有人说现在不加手动加,官方说加到system path里会带来后续的问题。我的建议是:如果你平时只用anaconda的环境的话,还是加上,如果有很多环境需求…那你肯定不用看这个教程了。
我的两台设备,一个是加的,一个是安装结束之后手动加的,都能正常用。手动加的话这样就可以(路径里带Anaconda的那5个):
电脑1号↓
电脑2号↓
打开anaconda prompt和清华镜像网站
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
Windows系统下先输入:
conda config --set show_channel_urls yes
我最后两台电脑添加的都是
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
另附几个小指令:
我先说写这个位置我曾经用的做法:
电脑2号(装在C盘里那个),我直接conda install r, 第一次网络不好没成功,第二次成功了;
电脑1号(装在D盘里那个),我直接conda install r失败了显示executing transaction denied,于是我用管理员身份打开cmd输入conda install r成功了显示下图,但是!
后面再安装其他包的时候会报错:
于是我又上网差这个OPENSSL的解决问题,各种花式替换dll文件…反正能试的都试了最后还没解决。于是我把Anaconda卸载了又重装一次…这个原因好像是在安装r的时候,有几个包的python是3.7.1,而我的conda的python是3.7.0,所以文件之间相互替换出了问题。
最后采用的方案是:为r配置新环境,在新环境里安装r。操作过程如下,也不用管理员身份打开,直接在prompt里输入:
conda create -n 你取的虚拟环境名字
然后,conda install r,就不会报错了。做完之后记下R所在的位置,后面会用到。我的两个电脑R.dll路径分别是:
D:\ProgramData\Anaconda3\envs\with_rpy2\lib\R\bin\x64
C:\Anaconda3\Lib\R\bin\x64 (这个我没有为r配置虚拟环境所以没有envs)
安好后直接在conda prompt里输入r,没报错可以写r代码了就成功了。
两个电脑我都用了Conda install rstudio,不过都没有成功。所以我决定直接在官网下RStudio。
RStudio安装的时候,会说它检测不到r,让你重新下载安装。这个时候不用重新下载r,它有三个选项,只需要选第三个自定义路径的那个,然后把路径指向(以电脑1号为例)D:\ProgramData\Anaconda3\envs\with_rpy2\lib\R就行,它会上这里面来找。然后下一步就可以使用Rstudio了。
真的,没有哪个包能像这个包一样对我造成如此深刻的心里阴影。所有,所有网友们遇到的报错我都遇到了。其实就两步,我说下现在主流的几种做法(不要轻易尝试):
【下载与安装】
Conda install rpy2
Pip install rpy2
下载轮子,然后pip/conda 安装轮子
【配置R_HOME/R_USER】
…说路径指向哪儿的都有,我总结不过来了
好了,只要是上述的方法你们都不要看了,真的我都试过了。我的一个老系统/两台新装如此干净的系统,我用这些方法就没一次成功过。你们谁也向我这样绝望的话,来试试我的方法,一次成功。
直接上这个网站,下载轮子
https://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2
把这个轮子的whl后缀改成zip,直接解压。会发现里面有两个文件夹,一个叫rpy2,另一个叫rpy2-2.9.5.dist-info。把这两个解压好的文件直接复制粘贴到anaconda->Lib->site-packages这个文件夹下,像这样:
电脑1号↓
电脑2号↓
我是加的系统变量,因为我只有这一个R,路径如下:
R_HOME是我们刚刚安装的R的位置,不用指向R.dll
R_USER是rpy2刚刚放在的位置
以下是两台电脑的实例:
电脑1号↓
电脑2号↓
(电脑1号里面那个with_rpy2是我安装r的环境的名称,不要混淆啦。)
事实证明斜杠的方向没有影响,我之所以电脑2号换了一个斜杠是因为,当时看这个包的源代码的时候发现它要读取R_HOME的位置,用的是这个斜杠/,我以为当时配置不成功是因为斜杠方向的原因…
这几件事做完了之后基本就成功了。然后接下来我们要输入三行指令:
Import rpy2
#为了看rpy2是否安装成功
Import rpy2.robjects as rob
#R_HOME和R_USER对没有,如果这一句报错的上一句没报错的话就不是安装的问题
from rpy2.robjects.packages import importr
#这句话决定刚刚安好的rpy2能不能成功调用r的代码
↑这个图就是R_HOME和R_USER没写对会报的错
↑这个图就是成功运行啦!
优雅!Elegant!
最后的最后,当你做完一切之后如果发现还不成功,有一个终极法宝:
【重启】
我就是安装到最后崩溃了,绝望之下重启了电脑,发现一切可以正常运行了…我的内心…
愿大家一切顺利!有问题留言!