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


18

最近,我在15.04上安装了Anaconda3-2.5.0-Linux-x86_64.sh并最终完成了此任务!

:~$ 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赶时间输入了一些内容,我想它必须对此进行一些操作。(好的,我的错,我应该仔细处理,但是现在我需要帮助,而不是批评)。

屏幕截图

AFAIK这肯定会破坏其他程序。现在我该怎么做?


我认为可以的。

可以使用别名吗?

alias python=python2

但是我不确定。


是。使用alias python=python2
Mostafa Ahangarha

AFAIK这肯定会破坏其他程序。是什么让你这么想的?如果Anaconda将Python 3设置为默认值,则可能是有原因的。
fkraiem

我已经毁了我的一个为2.x编写的项目,并且不鼓励将default转换为3.x,特别是因为许多软件包都在2.x上工作!
险恶的

在这种情况下,您很高兴采用专业方法并克隆了预安装引导驱动器,以防止浪费大量时间。请在下面查看我的答案。我认为您的安装方法引起了故障。因此,如果这发生在我身上,我将还原并重试。总时间将少于一天,以弄清它是否可行。如您所见,就我而言,我的验证工作已经结束,因此现在可以继续进行,看看是否值得这样做。花了几天时间确定它没有引起问题,研究工作已经步入正轨。
SDsolar

至于指定Python的版本,请确保您确切知道这会在整个系统中产生连锁反应。除非您只是在玩,否则如果您更改默认which pythonshebang结果的目标,则确实需要完整的验证过程。只需花一点时间就可以防止以后发现您已陷入需要重写某些实用程序的困境。最好是让事情保持默认值,除非您有很多时间。
SDsolar

Answers:


18

我在VM中进行了安装,然后发生了以下情况。

  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被调用。


3
“ 4.将$ HOME / bin附加到$ PATH” ..默认情况下已经完成~/.profile-创建后只需重新登录~/bin
muru

@muru是的,谢谢。添加到答案。
Nephente

好的,那很好,谢谢!提醒一下,我以前也安装了python 3.4.3(并且pip和pip3都与之关联),现在我有2.7、3.4、3.5。现在,我要重新安装pip以将其指向3.5!
险恶的

Anaconda附带了一个名为conda的软件包管理器。它还管理虚拟环境。我用它来安装软件包而不是pip。
Nephente



3

万一有人搞砸了(通过将默认值更改为anaconda或python 3)并以无功能的软件结束后,希望将其python默认版本改回2.7,只需点击以下链接即可:链接说明更改默认值python版本。


如果系统更改出错,请确保可以将其回滚。确保您拥有良好的系统映像备份,因此如果不按计划进行,则可以快速撤消所有重大更改。认为专业。如果您使用业余技巧,那么您将无法期待专业的成绩。
SDsolar

1

这对我有用,但对Miniconda来说,也对Anaconda也有用,但是如果我错了,请纠正我。

首先获取您的$ PATH变量:

echo $PATH

它可能看起来像这样(在所有其他内容之前都使用miniconda路径):

/home/your_user/miniconda3/bin:$PATH

将该路径复制到〜/ .bashrc文件的底部,但是将Miniconda放在路径的末尾而不是路径的开头,如下所示:

export PATH="$PATH:/home/your_user/miniconda3/bin"

系统将在miniconda3 / bin文件夹之前$ PATH变量的开头查找程序。

它应该为您以前喜欢python的程序恢复版本。

Conda 4.4开始,他们更改了添加到〜/ .bashrc中的代码。现在,要实现同一目的,请编辑〜/ .bashrc并注释掉以下行,以防止基础层(基础环境)在每个终端中都被激活。无需触摸新添加的任何其他部分。我不确定其意义何在CONDA_CHANGEPS1=false,但到目前为止还没有遇到任何问题。

   # CONDA_CHANGEPS1=false conda activate base

虽然你不会看到畅达文件夹中的路径了,该conda命令仍然运行良好,而原始pythonpython3pipenv命令的意志为好。


支持,因为我认为您是正确的。这在数据库中很好。但是,请问您是否对所涉及软件的版本号更为具体?
SDsolar

谢谢,我真的不认为程序版本很重要,这应该总是有效的。但是,当时我的安装程序是以下版本:Miniconda3 4.3.14。有帮助吗?
pedrodcb

0

这是我的答案,它可能是也可能不是您对自己的系统所做的操作的实际特定答案。

但是,我处在类似的情况下,也有同样的担忧。

我正在使用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命令行脚本文件都可以继续正常执行。

我倾向于以3兼容模式编写Python。例如在我的打印语句周围使用括号。但是我正在积极抵制对系统的重大更改,该更改可能导致难以应对的Python 2程序遇到故障。Python 3听起来不错,但对于我的需求而言并不必要。Python 2是一种了不起的语言。

我的计算环境不允许我回过头来重新设计已调整为可以正常工作的流程,而又不会花费很多时间,因为我必须回头弄清楚我最初在哪里使用过它。


对我来说最重要的是:在安装anaconda以供将来使用时,我没有遇到任何减速或问题。


这就是我正在处理的重点...刚刚完成对过去所有软件的重新认证。


下一步是实际使用包装中承诺的一些不错的东西。


因此,我必须怀疑其他简单安装是否anaconda还需要解决您的问题。

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


仅供参考,我有一个完整的科学工作站,致力于太阳动力学。也关于短暂和卫星互动。它必须工作。因此,我在这一切中不仅仅是一个小技巧。我一次安装一件事,然后验证在此之前一切正常。然后我继续下一个。SciPy,Matplotlab等(我更喜欢gnuplot)。因此,请理解,我正在以学术研究环境中的实时24x7工作系统作为数据点提交此答案。这不是测试环境-它是日常生产。
SDsolar

另外,正如我在上面的评论中提到的那样,请考虑一下专业人士。这些系统被全世界非常高级的研究人员所使用。->在进行任何重大系统升级之前,请确保启动驱动器具有克隆。该dd命令快速简便,并且SATA连接简单。没有理由避免保护您的系统。请注意,在每一步您都可以还原任何可能发生的更改。硬分手比您花费的时间便宜得多。(除非您认为这不是真的)。赠款加上时间紧缩应该是足够的激励。
SDsolar
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.