我是先下载了python3,后来因为需要2为了省事就去下载了anaconda2,但发现这里有个很严重的共存问题。
找了一下网上的各种共存问题,发现网上的基本上都是基于一个anaconda然后通过虚拟环境创建另外一个环境,从而实现两个py共存。
但这个根本不是我的本意,之前找了挺多在方法没能解决就算了。现在使用conda去下载包时,居然发现没有-r这个命令。。。也就是说不能像pip -r requirements.txt 一样一次性安装所有包,只得一个一个很麻烦。于是就还是想把它们共存下去。
其实py2和py3的共存方法有很多,我也是看了这篇博客才有点启发:http://blog.csdn.net/dream_an/article/details/51248736 但他的是要把原生py2和py3共存,而不是像我这样是一个py一个anaconda,网上一点这种共存的资料都没有,那我来写一个吧。
主要还是看到那篇博客里面的python2 -m pip list #查看 这里受到启发,发现可以用不pip2 list,而直接通过python去指定py2引导pip2.
我本来是原有的py3和其script环境变量
那个时候命令行下只能使用py3(我这里没吧py3里面的python.exe改成python3.exe,所以在cmd下运行python是默认进入python3和运行pip是进入pip3,个人也更多使用3),安装了anaconda2之后,我没动环境变量,所以在cmd下只能使用anaconda2的conda,但不能进入其的python2和pip2,所以这点有点燥。然后这次找了篇博客改了一下anaconda2文件夹里面的python.exe改成python2.exe,pip.exe改成pip2.exe,再在换金币安利加入E:Anaconda2和E:Anaconda2Scripts,发现这个时候在cmd下就能使用python2进入py2了,但遗憾的是pip2无用,甚至conda都没用了看这个报错貌似是因为我更改了python.exe成python2.exe的原因吧。刚好看到那篇的-m命令,灵机一动,于是想到了把anaconda2里的python.exe复制一份重命名就像这样,把anaconda里的pip2改回pip,然后把环境变量中py2的E:Anaconda2Scripts删掉只剩E:Anaconda2(当然py3的环境变量放在他们前),于是这样就实现了原生python3与anaconda2的共存了!(只是py2使用pip起来要麻烦一点,要像这样使用:python2 -m pip ***)
这样就测试到了,可以把他们分开来使用了!(一定要记得python3的环境变量在python2之前,且python2不需要pip的环境变量)
------------------------------更新---------------------
而ipython就更容易了,之前我3的ipython在安装jupyter不知道出了什么问题,pip install的时候表示有ipython,但是在命令行却进不了ipython(当时我的电脑只有3),很纳闷。
后来装了anaconda2后,2里面的ipython就成了正统的了,在命令行输入ipython都是进入2的。
直到今天,我用-U升级了一下py3里的ipython,然后直接在命令行里输入ipython进入的就是3的了(因为我的pip环境变量是3),我当时在想怎样进入ipython2,
发现-m的命令无法打开ipython,但是能打开2的jupyter,
3的jupyter直接打开就ok了:
我当时报着试一下的心态输入ipython2,结果还真进入了ipython的2,(我没有改2site-package里面的ipython)
于是再试一下ipython3,发现这样却也可行:
但输入python3,就不行,还是有点怪的啊:
或许ipython是设计好了的可区分吧。