这几天由于将python从默认的2.6.6升级到了2.7版本,导致原来安装的theano无法正常使用,出现的错误如下:
然后为了解决这个问题折腾了两天,在这里将发现的问题和体会记录一下,方便后面查看。
第一阶段:当初安装theano的时候,是在系统默认的python版本2.6.6下面安装的,此时输入python -V,版本号是2.6.6的,后来(12月22日上午)又将python升级到了2.7.3,结果发现theano无法使用,即在python命令下,import theano会出错,当时第一反应是升级python2.7导致将python的各种配置、路径啥的都覆盖了,于是基于python2.6.6安装的theano就无法使用,因此肯定要重新安装theano,于是就重新安装theano,结果竟然发现无法使用pip安装,然后就又想着可能pip也出问题了,重新安装pip,结果发现pip竟然也无法安装,后来各种折腾,结果无济于事。
由于一直想着这个事,中午也没回去休息,吃完饭回来接着干,又是各种折腾,还没有解决;后来换了一个思路:既然python2.7下安装theano不行,那么卸载2.7,回到2.6再重新安装应该行了吧。于是就想着卸掉2.7,网上搜了好久卸载的方法,很多人指出这种方法不好整,不过最后找到一个解释:Linux下python改回2.6,按照这个方法改回之后,重新安装theano,发现能用theano了,哈哈,高兴!
第二阶段:晚上的时候,小伙伴过来告诉我,由于torch 7的某些库文件需要python2.7版本,于是他将python升级到了2.7(此时输入python -V,显示的版本是2.7.6,竟然和我安装的2.7.3还不一样,我也是醉了),听完之后,我想哭……,由于他那边还需要继续各种配置,我心想你先弄你的吧,等比搞完了,我再想办法吧。
第二天,小伙伴搞完了,并且告诉我配置完之后,能同时使用python2.7和2.6(此时输入python -V,显示2.6.6,输入python2.7 -V,显示2.7.6),我心想,那还不错,起码python保留了2.6版本,那我后面配起来应该不是很难;于是我就开整,当时由于输入python,输出的默认版本是2.6.6,于是我感觉重新配置一遍theano估计就行了,于是pip numpy--成功,pip scipy--成功,pip--theano,成功,哈哈,很顺利嘛,那估计就没啥大问题了,于是import theano,结果:Error!由于此时的python命令已经指向2.6,所以没法像第一阶段里面提到的那样搞了,于是又是一上午加一中午,中间经历了各种折腾(包括重新安装2.7.3(有帖子提到./configure的时候加上--enable-shared等方法)),中午又没有回去休息,回来后又各种折腾,各种尝试,各种不行,越搞越乱,越搞越失望,甚至想到了要通宵重装系统,重新配置。
后来又重新想到了Linux下python改回2.6的方法,于是进去看看,看到里面有好几版本的python(2.6.6,2.7.3,2.7,2.6),此时输入python,给出的默认结果是python2.7.3,那输入python2.6会出现啥,结果也能调出python的命令行,只不过版本是2.6.6,再输入python2.6.6呢,结果还是输出2.6.6,这说明这几个版本同时共存了!于是分别在python2.7,python2.6下的命令行输入import theano都出错,结果在python2.6.6命令行下输入竟然可以了,竟然可以了,竟然可以了!原来在2.6.6下安装的theano还在!
现在想明白了,python下安装高版本的python的时候,并没有将原来的低版本覆盖掉,只是将python命令指向的版本或者说是连接改掉,原来版本的python还是存在的,比如原来输入python,出现的是2.6.6,后来升级到2.7之后,输入python,会出现python2.7.3,但是原来的2.6.6还在,只是不能用python命令,而是用python2.6.6命令,而theano是在python2.6.6下安装的,由于现在python指向的是2.7.3,所以不能用python,而应该用python2.6.6。原来是这个原因,也就是说这几天折腾的很多是无用功啊,只需要将python命令改成python2.6.6命令就行了。