anaconda安装
anaconda安装后,python变为python3,改为python2.7的处理方法:
原因在于python的软连接被修改,
/usr/bin/python -> /usr/local/python3/bin/python3
软连接的查看可以使用以下命令:
ls -l /usr/bin/python
注意青色的为软连接,绿色的为文件夹。
我们可以发现:
/usr/bin/python2 -> python2.7
于是只需删除python的软链接,同时将python2.7链接到python即可。
先删除默认的Python软链接:
sudo rm /usr/bin/python
然后创建一个新的软链接指向需要的Python版本:
sudo ln -s /usr/bin/python3.5 /usr/bin/python
为什么不用alias的原因
参考知乎未闻Code
问题的根源就在你的alias上面。
zsh 的alias的优先级是非常高的,它会首先替换为等号后面的内容,然后再执行。那么即使在虚拟环境下,在终端输入python并回车以后,实际执行的代码是:
/usr/local/bin/python3
你使用了绝对路径打开了系统中的Python3。
而由于你没有对pip 设定alias, 因此你使用pip 安装requests的时候,它调用的是虚拟环境下面的pip,所以requests会正确安装在虚拟环境下面。
–
若使用alias,则虚拟环境中python也只能是python2,影响使用。
conda管理虚拟环境的常用命令如下:
转载至AlexInML
conda虚拟环境:conda create -n envname
conda激活虚拟环境:source activate envname
conda退出虚拟环境:source deactivate
conda列出所有虚拟环境:conda env list
conda克隆虚拟环境:conda create -n envname --clone evnname1
conda删除虚拟环境:conda remove -n envname --all
conda虚拟环境安装包:conda install -n envname package, 例如:conda install -n envname tensorflow-gpu=1.2.1
pip使用
(创建虚拟环境后如果直接用pip安装python包,默认会使用全局pip,所以pip安装的包会对所有环境生效。如果要安装只对某个虚拟环境生效的python包,
(1)可以指定虚拟环境名称:conda install -n envname tensorflow-gpu=1.2.1;
(2)也可以在创建虚拟环境的时候指定pip只对当前环境生效,参考链接:
conda create -n superbad pip # 可以直接在虚拟环境中使用pip而不会影响全局库
source activate superbad
pip install -e fnawesome # installing into superbad site packages
ipython # runs superbad ipython
python # runs the environment's python with access to fnawesome
source deactivate
ipython # no access to fnawesome
python版本
如果系统中同时存在python2和python3,在用conda创建虚拟环境的时候可以指定使用哪个版本的python:
conda create -n new-env python=2.7 pip