如何更改默认Anaconda的Python环境

How to change default Anaconda python environment

我安装了Python并创建了两个额外的环境:py3k(包含python 3.3)和py34(包含python 3.4)。除此之外,我还有一个名为"root"的默认环境,它是由anaconda安装程序默认创建的,并且包含python 2.7。最后一个是默认的,每当我从终端启动"ipython"时,它都会给我2.7版。为了使用Python3.4,我需要发出命令(在shell中)

1
2
source activate py34
ipython

它将默认环境更改为python 3.4。这很好,但这很烦人,因为我在Python3.4上工作的大部分时间,而不是在Python2.7上(我认为这是为了教学目的,这是一个相当长的故事)。无论如何,我想知道如何将默认环境更改为python 3.4,记住我不想从头开始重新安装所有内容。


首先,通过运行

1
conda update conda

然后运行

1
conda install python=3.5

这将尝试将根环境中的所有包更新为python 3版本。如果不可能(例如,因为某些包不是为python 3.5构建的),它将向您提供一条错误消息,指出是哪个包导致了该问题。

如果使用pip安装软件包,则必须重新安装它们。


在Linux下,通过修改~/.bashrc~/.bash_profile,可以更容易地设置默认环境。最后你会发现

1
2
# added by Anaconda 2.1.0 installer
export PATH="~/anaconda/bin:$PATH"

用它代替

1
2
# set python3 as default
export PATH="~/anaconda/envs/python3/bin:$PATH"

这就是一切。


概述出于兼容性的原因,有些人有多个Python环境和不同版本的Python。在这种情况下,您应该有一个设置默认环境的脚本。使用此方法,您可以保留在环境中使用的Python版本。

以下假设环境名称是环境的名称

Mac/Linux:编辑您的bash配置文件,使最后一行是"source activate environment_name"。在Mac OSX中,这是~/.bash_配置文件,在其他环境中,这可能是~/.bashrc

例子:以下是我在Mac OSX上的做法

  • 开放式终端和类型:

    nano~/.bash_简介

  • 转到文件结尾并键入以下内容,其中"p3.5"是我的环境:

    震源激活P3.5

  • 退出文件。启动新的终端窗口。

  • 键入以下内容以查看激活的环境

    康达信息-E

  • 结果显示默认情况下我使用的是我的p3.5环境。

    对于Windows:使用"activate environment_name"(激活环境名称)创建命令文件(.cmd),并按照以下说明在打开命令提示时执行该文件。

  • 创建一个批处理文件命令,例如"my-conda.cmd",将其放入应用程序数据文件夹。
  • 将其配置为在打开cmd时自动启动。此设置在注册表中:密钥:hkcusoftwaremicrosoftcommand processor值:自动运行类型:Reg_Expand_SZ数据:"%appdata%myu conda.cmd"
  • 从这个答案:https://superuser.com/a/302553/143794


    对于Windows,anaconda带有anaconda提示,这是命令的快捷方式,可以使用它运行conda命令,而不必在路径变量中添加anaconda。找到它的位置,复制并重命名副本(比如myenv_prompt)。右键单击myenv_prompt并在上下文菜单中选择属性。

    enter image description here

    属性窗口的目标窗体应该已经用文本填充,比如%windir%\system32\cmd.exe"/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\。此命令有三个部分:1)启动…cmd.exe 2)运行…acitvate.bat与环境3…miniconda3

    将第三部分更改为默认环境路径(例如myenv),即填写目标表单,如%windir%\system32\cmd.exe"/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\envs\myenv

    现在,myenv-prompt将作为快捷方式启动cmd,myenv作为python的默认环境。此快捷方式可以保留在"开始"菜单中,也可以固定在任务栏中。

    这个方法的一个优点是,您可以创建一些快捷方式,每个快捷方式都有不同的环境作为默认环境。此外,您还可以通过填写"属性"窗口中的"开始"来设置默认文件夹。

    希望这有帮助

    附:不需要找到Python提示,可以通过改变任何快捷方式的目标来完成。但您需要知道cmd.exe和activate.bat的路径


    正确答案(截至2018年12月)是……不能。升级conda install python=3.6可能会工作,但如果您有必要的软件包,可能不会工作,但不能卸载。

    anaconda使用名为base的默认环境,并且不能创建同名的新环境(例如python 3.6)。这是故意的。如果您希望您的基础Python是python 3.6,正确的方法是为python 3.6安装Python。作为一个软件包管理者,anaconda的目标是将不同的环境封装起来,因此为什么必须将源代码激活到其中,以及为什么不能随意地悄悄地切换基本软件包,因为这可能会导致生产系统上的许多问题。


    永久性更改

    1
    conda install python={version}

    临时更改

    查看您的环境

    在终端窗口或Anconda提示下运行conda info --envs

    如果它不显示要安装的环境

    运行conda create -n py36 python=3.6 anacondafor python 3.6,根据您的喜好更改版本

    激活环境(使用Python提示)

    运行activate envnmeennme,当运行conda info --envs时,您可以通过这个命令找到cx1〔2〕ennme作为示例。

    base * C:\Users\DulangaHeshan\Anaconda3
    py36 C:\Users\DulangaHeshan\Anaconda3\envs\py36

    然后运行activate py36

    检查运行python --version

    在Windows中,最好先停用一个环境,然后再激活另一个环境。https://conda.io/docs/user-guide/tasks/manage-python.html网站


    我对这里给出的任何答案都不满意,因为在我的平台上激活一个环境需要几秒钟(无论出于什么原因)。

    我修改了我的路径变量,使我希望作为默认值的环境优先于实际默认值。

    在我的例子中,我使用以下命令来为环境"py35"实现这一点:

    1
    2
    setx PATH"%userprofile%\Anaconda3\envs\py35\;%PATH%"
    setx PATH"%userprofile%\Anaconda3\envs\py35\Scripts;%PATH%"

    要找出环境的存储位置,请激活它并输入where python。我还不确定这种方法是否有任何缺点。因为它还更改了Conda可执行文件的默认路径。如果是这样,请评论。


    在桌面或任务栏上创建一个Anaconda提示的快捷方式,然后在该快捷方式的属性中确保将"target:"中的最后一个路径修改为ur环境的路径:

    C:usersenboualianaconda3将变为C:usersenboualianaconda3envs ensorflow gpu

    预览

    通过这种方式,你可以在单击某个环境时使用该快捷方式打开它,也可以将其添加到你的路径中,现在你只需输入快捷方式的名称,就可以从Windows的"运行"框中运行它。