如何更改默认的Anaconda python环境


170

我已经安装了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

它将默认环境更改为Python 3.4。这很好用,但是很烦人,因为我大部分时间都在使用Python 3.4而不是Python 2.7(我出于教学目的持有这是一个很长的故事)。无论如何,我想知道如何将默认环境更改为Python 3.4,但要记住我不想从头开始重新安装所有内容。


7
您是否考虑过source activate py34在您的产品中使用.bashrc
cel 2015年

1
感谢您的回答。我没有尝试过,因为我认为不可能从bash脚本调用源激活,因为source命令需要在同一shell中运行,而不是在子shell中运行。我尝试将上面的两行放入bash脚本中,我可以说这行不通。
user2734434

4
我有CONDA_ROOT="/Users/bla/miniconda"source ${CONDA_ROOT}/bin/activate ${CONDA_ROOT}/envs/empty &> /dev/null在我.bashrc看来,它工作正常。
2015年

1
我认为.bashrc它不是作为脚本运行的,而是由新的外壳程序提供的,因此您无法通过运行bash脚本进行检查。
2015年

3
@ user2734434 bashrc文件是在会话开始时获取的,因此,如果将source activate其放入,它将影响shell环境。
asmeurer 2015年

Answers:


86

如果您只想更改为其他环境,请使用

source activate environment-name

(您可以environment-name使用`conda create创建)


通常,最好只是创建新环境。但是,如果您确实想在默认环境中更改Python版本,则可以执行以下操作:

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

conda update conda

然后跑

conda install python=3.5

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

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


1
@flutefreak实际上它现在可以在Windows上运行(conda update conda先运行以确保您具有最新版本)。我将更新答案。
asmeurer 2015年

126
这个答案似乎与问题无关,该问题与更改默认环境有关。
鲍勃

16
@asmeurer但这不是被要求的。他不想在任何环境中更新软件包。他希望将py34设置为默认环境,使其处于活动状态而无需干预,因此py34在发送“源激活”命令之前处于活动状态。
鲍勃

20
我必须在这里同意@Bob。根环境中的软件包将更新为3.5,这可能已经解决了原始发布者的特定问题。但是,当您打开提示时,您仍将位于根环境中,因此您尚未指定其他默认环境。由于每个想要实现这一目标并用谷歌搜索的人都会遇到这个问题,因此,如果也回答原始问题会更好。也许无法将默认环境更改为root以外的其他内容?
arjan

4
这对我不起作用。我的默认值是python 3.4,使用该标志python=3.5并没有将python从3.4升级到3.5 ...有什么建议吗?
WillZ

56

概述
出于兼容性原因,某些人具有多个具有不同版本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”是我的环境:

    source activate p3.5

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

  4. 输入以下内容以查看活跃的环境

    conda info -e

结果表明,默认情况下我正在使用我的p3.5环境。

对于Windows:在打开命令提示符时,
使用创建一个命令文件(.cmd),activate environment_name并按照以下说明执行该文件。

  1. 创建一个批处理文件命令,例如“ my_conda.cmd”,将其放入“应用程序数据”文件夹中。
  2. 将其配置为在每次打开时自动启动cmd。此设置位于注册表中:注册表
    项:HKCU \ SOFTWARE \ Microsoft \ Command处理器
    值:自动运行
    类型:REG_EXPAND_SZ
    数据:“%AppData%\ my_conda.cmd”

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


1
非常感谢你。我发现使用我的Mac版本无法摆脱Python 2的困扰,因此按照建议的操作来设置两个单独的环境,但是必须记住在每个新的终端窗口上激活该环境是非常烦人的。这可行!
Livvy Jeffs

当我在Windows 10下执行此操作时,这会导致管道损坏和冻结的命令提示符
。– aaronsnoswell

Windows 10上的任何人对此都有更好的运气吗?
Wassadamo

3
这应该是可接受的答案(至少对于基于unix的Conda)!
西蒙·范·马钦

50

在Linux下,有一种更简单的方法可以通过修改~/.bashrc或来设置默认环境。~/.bash_profile 最后,您会发现类似

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

替换为

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

这就是全部。


3
那是什么问题呢?
Dieter Meemken 2015年

我尝试了此解决方案,但在我的路上仍然显示anaconda2,有什么想法吗?
威廉·罗斯

10
这不会设置默认环境。似乎可以绕开conda并假装认为“ python3”是默认值。“ conda info -e”仍将“ root”显示为当前环境。我仍在寻找一种方法来告诉conda这是默认设置。
MrMas '16

8
从conda的角度来看,这并没有设置默认环境。似乎可以绕开conda并假装认为“ python3”是默认值。“ conda info -e”仍将“ root”显示为当前环境。要解决此问题,您还需要设置CONDA_PREFIX和CONDA_DEFAULT_ENV。即使那样,答案仍然是骇客。为什么不只运行'source activate <新默认环境>',因为conda已将其作为完成此任务的“内置”方式提供。
MrMas '16

Windows 10上是否有.bashrc.bash_profile?我在遵循此jattenberg.github.io/PDS-Fall-2013/assets/install/…的同时在cygwin下找到了一个。但是我不确定这是我应该改变以获得OP所需功能的方法。
Wassadamo

14

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

在此处输入图片说明

“ 属性”窗口的“ 目标”表单应该已经用文本填充,例如%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)运行... \使用环境3)\ acitvate.bat ... \ Miniconda3 \

将第3部分更改为您想要默认设置的环境路径(例如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将充当以myenv作为python的默认环境启动cmd的快捷方式。您可以将此快捷方式保留在开始菜单中或固定在任务栏中。

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

希望这可以帮助

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


2
这应该是最佳答案
James McCormac,

我使用这种方法,但是我的第一部分有所不同:C:\Windows\System32\cmd.exe /c start ""不确定我是如何得出该解决方案的,但是这是我写的关于其语法的文章
xtian

8

永久更改

conda install python={version}

临时更改

查看您的环境

运行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


3
我认为OP需要一个将基本环境更改为py36的解决方案,这样它们就不必activate py36每次启动时都运行。
Wassadamo

6

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

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


如果我的基本环境坏了,我想用一个可行的环境替换它怎么办?
Endlith

@endolith 如果我的基本环境坏了,我想用一个可行的环境替换它怎么办?重新安装Conda。
AMC

@AMC我已经重新安装了很多次。我想要一种无需重做即可恢复良好状态的方法
Endolith

1
@endolith您已重新安装多次以解决相同的问题?它怎么最终破裂了?我们应该在其他地方讨论这个问题,我创建了一个聊天室
AMC

1

我对这里提出的任何答案都不满意,因为激活环境在我的平台上花费了几秒钟(无论出于何种原因)

我修改了路径变量,以使我想要作为默认环境的优先于实际默认环境。

就我而言,我使用以下命令针对“ py35”环境完成此操作:

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

要查找环境的存储位置,请激活它并输入where python。我不确定这种方法是否有缺点。由于它还会更改conda可执行文件的默认路径。如果是这种情况,请发表评论。


1

使用anaconda安装库时,出现了此错误。我的版本从Python 3. *升级到2.7,很多东西停止了工作。我发现的最佳解决方案是首先查看可用的最新版本:

conda search python

然后更新到所需的版本:

conda install python=3.*.*

资料来源:http : //chris35wills.github.io/conda_python_version/

其他有用的命令:

conda info
python --version

我的版本从Python 3. *升级到2.7,很多东西停止了工作。除非我缺少任何内容,否则这似乎与问题以及OP中描述的内容无关。
AMC

0

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

C:\ Users \ BenBouali \ Anaconda3 \将更改为C:\ Users \ BenBouali \ Anaconda3 \ envs \ tensorflow-gpu

预习

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


0

在Windows上,创建包含以下行的批处理文件:

start cmd /k "C:\Anaconda3\Scripts\activate.bat C:\Anaconda3 & activate env"

引号中包含的第一个路径是Anaconda安装中的activate.bat文件的路径。您系统上的路径可能不同。当然,激活命令后面的名称应该是您所需的环境名称。

然后在需要打开Anaconda提示符时运行批处理文件。


0

加载你的 “基地”环境-如OP的py34-当你加载你的终端/壳。

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

conda activate py34

在您.bash_profile(或.bashrc)中:

$ echo 'conda activate py34' >> ~/.bash_profile

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

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.