Anaconda 将 python3 设置为默认后如何切换回 python2?

Anaconda 将 python3 设置为默认后如何切换回 python2?

最近,我安装了Anaconda3-2.5.0-Linux-x86_64.sh在我的 15.04 上并最终得到这个!

:~$ python --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

:~$ python2 --version
Python 2.7.9

:~$ python3 --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

在安装的最后时刻,我确实yes匆忙输入了一些内容,我想这一定与此有关。(好吧,是我的错,我应该小心处理,但现在我需要的是帮助,而不是批评)。

截屏

据我所知,这肯定会破坏其他程序。我现在该怎么办?


我认为这是可行的。

可以使用别名来完成吗?

alias python=python2

但我不确定。

答案1

我在虚拟机中完成了安装,并发生了以下情况。

  1. 安装程序会询问安装位置。默认为/home/myuser/anaconda3
  2. 最后你会被问到

    Python 3.5.1 :: Continuum Analytics, Inc.
    creating default environment...
    installation finished.
    Do you wish the installer to prepend the Anaconda3 install location
    to PATH in your /home/myuser/.bashrc ? [yes|no]
    [no] >>> yes
    
    Prepending PATH=/home/myuser/anaconda3/bin to PATH in /home/myuser/.bashrc
    A backup will be made to: /home/myuser/.bashrc-anaconda3.bak
    

要恢复旧的行为,请转到你的主目录并执行

mv .bashrc-anaconda3.bak .bashrc

然后启动一个新 shell。

正如您所建议的,您可以alias python=python2,但我觉得有点奇怪。我会

  1. 恢复原状.bashrc
  2. 创建(如果不存在)~/bin
  3. 关联ln -s ~/anaconda3/bin/python3 ~/bin/python3
  4. [添加$HOME/bin$PATH](应该已默认设置~/.profile
  5. 重新登录。

这样,调用python3将从 Anaconda 启动。


重要的一点是,原始文件/usr/bin/python仍在那里,并且仍指向python2.7。路径中包含 的后果python->python3取决于特定脚本的调用方式。

如果使用 shebang #!/usr/bin/python,就像 Ubuntu 附带的所有可执行文件一样,则不会发生任何变化。另一方面,为了获得更好的可移植性#!/usr/bin/env python,有时会使用它,现在将导致python3.5调用它。

答案2

这里有一个好的答案: https://stackoverflow.com/questions/24405561/how-to-install-2-anacondas-python-2-7-and-3-4-on-mac-os-10-9

conda create -n python2 python=2.7 anaconda

然后,切换:

source activate python2

答案3

如果有人在弄乱 Python 默认版本(将默认版本更改为:anaconda 或 python 3)并最终得到无法运行的软件后想要将其改回 2.7,请点击以下链接:链接并附带更改默认 Python 版本的说明。

答案4

这是我的答案,它可能是也可能不是您对自己的系统所做事情的实际具体答案。

然而,我也处于类似的情况,并且有同样的担忧。

我正在使用 Ubuntu 16.04 LTS 和 Python 2.7.12,最近刚刚安装了 Anaconda。

所以现在,当我进入命令行并输入时,python它仍然会转到我的 Python2 安装。

经此序列确认:

$which python
/usr/bin/python     <  Catch-all for max compatibility
$python
Python 2.7.12 . . etc

因此就我而言,anaconda这不会对我的默认 Python2 shebang 造成任何问题。

归根结底,这就是问题所在。

当您询问系统时,which python您可以相信这是在命令行样式 Python 程序的第一行中使用的正确字符串。

就我的情况而言,所有相同的 Python 命令行脚本文件都可以继续正常执行。

我倾向于以兼容 Python 3 的方式编写 Python。例如,在我的打印语句周围使用括号。但我积极抵制对系统进行重大更改,因为这可能会导致来之不易的 Python 2 程序遇到故障。Python 3 听起来很棒,但对于我的需求来说没有必要。Python 2 是一种很棒的语言。

我的计算环境不允许我回头重新设计过去已经调整为正常工作的流程,因为这会花费大量时间,因为我必须回头弄清楚我最初在哪里使用它。


对我来说,底线是:在安装anaconda以供将来使用时,我没有遇到任何障碍或问题。


这就是我目前所处的阶段...刚刚完成对所有过去软件的重新认证。


下一步是实际使用包中承诺的一些很酷的东西。


因此,我必须怀疑其他简单的安装anaconda肯定与您的情况有更多关联。

根据我的经验,这根本不是问题。

相关内容