如何更改默认的Anaconda python环境

use*_*434 149 python environment python-2.7 python-3.x anaconda

我已经安装了Anaconda并创建了两个额外的环境:py3k(它拥有Python 3.3)和py34(它拥有Python 3.4).除此之外,我还有一个名为"root"的默认环境,Anaconda安装程序默认创建该环境并保存Python 2.7.最后一个是默认值,每当我从终端启动'ipython'时它就会给我2.7版本.为了使用Python 3.4,我需要发出命令(在shell中)

source activate py34
ipython
Run Code Online (Sandbox Code Playgroud)

它将默认环境更改为Python 3.4.这很好用,但是很烦人,因为大多数时候我使用的是Python 3.4,而不是Python 2.7(我为教学目的而持有,这是一个相当长的故事).无论如何,我想知道如何将默认环境更改为Python 3.4,请记住我不想从头开始重新安装所有内容.

asm*_*rer 83

首先,通过运行确保您拥有最新版本的conda

conda update conda
Run Code Online (Sandbox Code Playgroud)

然后跑

conda install python=3.5
Run Code Online (Sandbox Code Playgroud)

这将尝试将根环境中的所有软件包更新为Python 3版本.如果不可能(例如,因为某些软件包不是为Python 3.5构建的),它会给出一条错误消息,指出导致问题的软件包.

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

  • 这个答案似乎没有连接到关于更改默认环境的问题. (89认同)
  • 我必须在这里同意@Bob.根环境中的包将更新为3.5,这可能已经解决了原始海报的具体问题.但是当您打开提示时,您仍将处于根环境中,因此您尚未指定其他默认环境.因为每个想要实现这一目标并且谷歌搜索的人都会在这个问题上结束,如果原来的问题也得到了解答会更好.也许不可能将默认环境更改为root以外的其他内容? (19认同)
  • @asmeurer但这不是被问到的.他不想更新任何环境中的包.他想让py34成为默认环境,在没有干预的情况下处于活动状态,因此py34在发送"source activate"命令之前处于活动状态. (13认同)
  • 这对我不起作用.我的默认值是python 3.4,使用标志`python = 3.5`没有将python从3.4升级到3.5 ......有什么建议吗? (4认同)

Jev*_*Jev 49

在Linux下有修改设置默认环境更简单的方法~/.bashrc还是~/.bash_profile 在最后,你会发现像

# added by Anaconda 2.1.0 installer
export PATH="~/anaconda/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

替换为

# set python3 as default
export PATH="~/anaconda/envs/python3/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

这就是它的全部内容.

  • 这不会设置默认环境.它似乎绕过conda并伪装成认为"python3"是默认值."conda info -e"仍然将"root"显示为当前环境.我仍在寻找一种方法来告诉conda这是默认的. (9认同)
  • 这不会从conda的角度设置默认环境.它似乎绕过conda并伪装成认为"python3"是默认值."conda info -e"仍然将"root"显示为当前环境.要解决此问题,您还需要设置CONDA_PREFIX和CONDA_DEFAULT_ENV.即便如此,答案仍然是一个黑客; 为什么不运行'source activate <new default environment>',因为这已经提供了conda作为完成此操作的"内置"方式. (7认同)
  • 问题是什么? (2认同)

Fis*_*ury 46

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

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

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

示例:
这是我在Mac OSX上的表现

  1. 打开终端并输入:

    nano~/.bash_profile

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

    源激活p3.5

  3. 退出文件.启动一个新的终端窗口.

  4. 键入以下内容以查看活动的环境

    conda info -e

结果显示我默认使用我的p3.5环境.

对于Windows:
使用"activate environment_name " 创建命令文件(.cmd)并按照这些说明在每次打开命令提示符时执行它

  1. 创建批处理文件命令,例如"my_conda.cmd",将其放在Application Data文件夹中.
  2. 将其配置为在打开cmd时自动启动.此设置位于注册表中:
    key:HKCU\SOFTWARE\Microsoft\Command Processor
    value:AutoRun
    类型:REG_EXPAND_SZ
    数据:"%AppData%\ my_conda.cmd"

从这个答案:https://superuser.com/a/302553/143794

  • 这应该是公认的答案(至少对于基于 unix 的 Conda 来说)! (3认同)
  • 用户还应该设置 `conda config --set auto_activate_base false`,以在 Conda 初始化代码期间跳过激活 **base**。 (3认同)

Bra*_*ndt 13

py34只需在加载终端/shell 时激活您的环境即可。

如果您使用 Bash,请输入以下行:

conda activate py34
Run Code Online (Sandbox Code Playgroud)

在你的.bash_profile(或.bashrc)中:

$ echo 'conda activate py34' >> ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

每次运行新终端时,py34都会加载 conda 环境。


Kus*_*esh 11

对于Windows Anaconda附带Anaconda Prompt,这是cmd的快捷方式,可以使用运行conda命令而无需在PATH变量中添加anaconda.找到它的位置,复制并重命名副本(比如myenv_prompt).右键单击myenv_prompt并在上下文菜单中选择属性.

在此输入图像描述

属性窗口的Target窗体应该已经填充了文本,例如%windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\ 这个命令有三个部分1)start ...\cmd.exe 2)运行...\acitvate.bat with environment 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的默认环境.您可以将此快捷方式保留在开始菜单中或固定在任务栏中.

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

希望这可以帮助

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

  • 这应该是最佳答案 (2认同)

Sea*_*ean 11

如果您希望 Anaconda Navigator 默认为您创建的虚拟环境,请转到文件 > 首选项并在下拉 lint 中选择默认 conda env: 在此输入图像描述

如果您希望 Anaconda 命令自动打开虚拟环境,而无需输入 activate envName,请执行以下操作:

右键单击 conda 快捷方式 > 转到属性并将目标更改为如下所示:

%windir%\System32\cmd.exe "/K" C:\Anaconda\Scripts\activate.bat C:\Anaconda\envs\p37
Run Code Online (Sandbox Code Playgroud)

您也可以选择设置默认工作目录,就像我在下面的 snapshop 中所做的那样: 在此输入图像描述


Bir*_*abs 7

activate.py当您评估 生成的 shell 钩子时,会被硬编码为发送到您的 shell 配置文件中。conda activate base\nconda shell.zsh hook

您可以通过以下方式抑制此硬编码的“自动激活基地”:

conda config --set auto_activate_base false
Run Code Online (Sandbox Code Playgroud)

然后,在 中~/.zshrc~/.bashrc或者无论您从何处获取 shell 配置文件,您都可以附加以下内容(在 conda shell 挂钩之后)以显式激活您选择的环境:

conda activate py34
Run Code Online (Sandbox Code Playgroud)


Dul*_*han 5

永久更改

conda install python={version}
Run Code Online (Sandbox Code Playgroud)

临时更改

查看您的环境

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

如果未显示您要安装的环境

运行conda create -n py36 python=3.6 anacondapython 3.6更改版本作为您的首选

激活环境(使用Anaconda提示符)

运行activate envnmeenvnme,您可以conda info --envs在运行时通过此命令作为示例conda info --envs显示

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

然后跑 activate py36

检查运行 python --version

在Windows中,优良作法是在激活另一个环境之前先停用它。 https://docs.conda.io/projects/conda/zh/latest/user-guide/tasks/manage-environments.html?highlight=deactivate%20environment

  • 我认为OP需要一种将基本环境更改为py36的解决方案,这样他们就不必在每次启动时都运行`activate py36`。 (2认同)

cgn*_*utt 5

正确的答案(截至2018年12月)是...你不能。升级conda install python=3.6可能会起作用,但是如果您有必需的但无法卸载的软件包,则可能无法升级。

Anaconda使用默认环境命名,base并且您不能使用相同名称创建新的环境(例如python 3.6)。这是故意的。如果您希望基本的Anaconda为python 3.6,则正确的方法是为python 3.6安装Anaconda。作为程序包管理器,Anaconda的目标是封装不同的环境,因此为什么您必须在其中激活源程序以及为什么不能随便安静地切换基本程序包,因为这可能会导致生产系统出现许多问题。

  • @endolith您已重新安装多次以解决相同的问题?最后怎么就坏掉了呢?我们应该在其他地方讨论这个问题,我创建了一个[聊天室](https://chat.stackoverflow.com/rooms/215679/room-for-amc-and-endolith)。 (2认同)