conda安装python版本管理与虚拟环境设置

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章