如何更改默认 Anaconda python 环境
Posted
技术标签:
【中文标题】如何更改默认 Anaconda python 环境【英文标题】:How to change default Anaconda python environment 【发布时间】:2015-04-10 18:52:10 【问题描述】:我安装了 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,记住我不想从头开始重新安装所有内容。
【问题讨论】:
您是否考虑过在您的.bashrc
中使用source activate py34
?
感谢您的回答。我没有尝试过,因为我认为无法从 bash 脚本调用 source activate ,因为 source 命令需要在同一个 shell 中运行,而不是在子 shell 中。我已经尝试将上面的两行放入 bash 脚本中,我可以说它不起作用。
我的.bashrc
中有CONDA_ROOT="/Users/bla/miniconda"
和source $CONDA_ROOT/bin/activate $CONDA_ROOT/envs/empty &> /dev/null
,它似乎工作正常。
我认为 .bashrc
不是作为脚本运行的,而是由新的 shell 提供的,因此您无法通过运行 bash 脚本来检查它。
@user2734434 bashrc文件是在session开始的时候source的,所以如果你把source activate
放在里面会影响shell环境。
【参考方案1】:
如果您只是想暂时更改到另一个环境,请使用
source activate environment-name
ETA:这可能已被弃用。我相信当前正确的命令是:
source conda activate environment-name
(你可以用conda create
创建environment-name
)
要永久更改,除了创建一个运行上述代码的启动脚本之外别无他法。
通常最好只创建新环境。但是,如果你真的想更改默认环境下的 Python 版本,你可以这样做:
首先,通过运行确保您拥有最新版本的 conda
conda update conda
然后运行
conda install python=3.5
这将尝试将根环境中的所有包更新到 Python 3 版本。如果不可能(例如,因为某些包不是为 Python 3.5 构建的),它会给您一条错误消息,指出是哪个包导致了问题。
如果您使用 pip 安装软件包,则必须重新安装它们。
【讨论】:
@flutefreak 它现在实际上可以在 Windows 上运行(首先运行conda update conda
以确保您拥有最新版本)。我会更新答案。
这个答案似乎与问题无关,是关于更改默认环境的问题。
@asmeurer 但这不是所要求的。他不想更新任何环境中的包。他想让 py34 成为默认环境,无需干预即可激活,因此 py34 在他发送“source activate”命令之前是激活的。
我在这里必须同意@Bob。根环境下的包会更新到3.5,这可能解决了原贴的具体问题。但是当您打开提示时,您仍然处于 root 环境中,因此您没有指定另一个默认环境。由于每个想要实现这一目标并在谷歌上搜索它的人都会遇到这个问题,所以如果原始问题也得到回答会更好。也许无法将默认环境更改为 root 以外的其他内容?
这对我不起作用。我的默认是 python 3.4,使用标志 python=3.5
没有将 python 从 3.4 升级到 3.5...有什么建议吗?【参考方案2】:
如果您希望 Anaconda Navigator 默认为您创建的虚拟环境,请转到文件 > 首选项并在下拉 lint 中选择默认 conda env:
如果您希望 Anaconda 命令自动打开虚拟环境,而无需键入 activate envName,请执行以下操作:
右键单击 conda 快捷方式 > 转到属性并将目标更改为如下内容:
%windir%\System32\cmd.exe "/K" C:\Anaconda\Scripts\activate.bat C:\Anaconda\envs\p37
您也可以选择设置默认工作目录,就像我在下面的 snapshop 中所做的那样:
gl
【讨论】:
【参考方案3】:这是我在 Windows 10 系统上自动激活首选环境的解决方案:
打开 anaconda 提示符并使用“conda env list”查找您要使用的环境的位置。
转到开始菜单,右键单击“Anaconda Prompt”并转到文件位置。
创建此快捷方式文件的副本
打开其属性并将目标更改为您首选环境的位置。
现在,每次您通过此快捷方式打开 anaconda 提示时,它都会自动加载您选择的环境。
【讨论】:
【参考方案4】:只需在加载终端/shell 时激活 py34
环境即可。
如果您使用 Bash,请输入以下代码:
conda activate py34
在您的.bash_profile
(或.bashrc
)中:
$ echo 'conda activate py34' >> ~/.bash_profile
每次运行新终端时,都会加载 conda 环境py34
。
【讨论】:
【参考方案5】:对于 Jupyter 和 Windows 用户,您可以将 Jupyter Notebook (anaconda3)
快捷方式中的目标路径从 C:\Users\<YourUserName>\anaconda3
更改为 C:\Users\<YourUserName>\anaconda3\envs\<YourEnvironmentName>
你可以为 Anaconda Prompt..etc 做同样的事情。
更改路径后,您可以通过在 Jupyter 中打开终端并运行 conda info --envs
来检查您的活动环境。
【讨论】:
【参考方案6】:在 Windows 上,创建一个包含以下行的批处理文件:
start cmd /k "C:\Anaconda3\Scripts\activate.bat C:\Anaconda3 & activate env"
引号中的第一个路径是 Anaconda 安装中 activate.bat 文件的路径。您系统上的路径可能不同。激活命令后面的名称当然应该是您想要的环境名称。
然后在需要打开 Anaconda 提示符时运行批处理文件。
【讨论】:
【参考方案7】:概述 出于兼容性原因,有些人有多个 Anaconda 环境和不同版本的 python。在这种情况下,您应该有一个设置默认环境的脚本。使用此方法,您可以保留您在环境中使用的 python 版本。
以下假设 environment_name 是您的环境名称
Mac / Linux:
编辑您的 bash 配置文件,使最后一行是 source activate environment_name
。在 Mac OSX 中这是 ~/.bash_profile,在其他环境中可能是 ~/.bashrc
示例: 这是我在 Mac OSX 上的做法
打开终端并输入:
nano ~/.bash_profile
转到文件末尾并键入以下内容,其中“p3.5”是我的环境:
source activate p3.5
退出文件。启动一个新的终端窗口。
键入以下内容以查看处于活动状态的环境
conda info -e
结果显示我默认使用的是我的p3.5环境。
对于 Windows:
使用activate environment_name
创建一个命令文件 (.cmd),并按照这些说明在您打开命令提示符时执行它
-
创建批处理文件命令,例如“my_conda.cmd”,放到Application Data文件夹中。
将其配置为在您打开
cmd
时自动启动。此设置在注册表中:
键:HKCU\SOFTWARE\Microsoft\Command Processor
值:自动运行
类型:REG_EXPAND_SZ
数据:“%AppData%\my_conda.cmd”
来自这个答案:https://superuser.com/a/302553/143794
【讨论】:
非常感谢。我发现使用我的 Mac 版本我无法摆脱 Python 2——因此按照推荐的操作设置了两个单独的环境,但是必须记住在每个新的终端窗口上激活环境非常烦人。这行得通! 当我在 Windows 10 下执行此操作时,这会导致管道损坏并冻结命令提示符。 Windows 10 上的任何人都有更好的运气? 这应该是公认的答案(至少对于基于 unix 的 Conda)!【参考方案8】:我在使用 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 中描述的内容。【参考方案9】:永久更改
conda install python=version
临时更改
查看您的环境
在终端窗口或 Anconda 提示符上运行 conda info --envs
如果它没有显示您要安装的环境
为 python 3.6 运行 conda create -n py36 python=3.6 anaconda
根据您的喜好更改版本
激活环境(使用 Anaconda 提示符)
运行activate envnme
envnme 你可以通过这个命令找到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/en/latest/user-guide/tasks/manage-environments.html?highlight=deactivate%20environment
【讨论】:
我认为 OP 想要一个将基础环境更改为 py36 的解决方案,这样他们就不必每次启动时都运行activate py36
。【参考方案10】:
在桌面或任务栏上创建 anaconda 提示的快捷方式,然后在该快捷方式的属性中确保将“目标:”中的最后一个路径修改为您的环境路径:
C:\Users\BenBouali\Anaconda3\ 将更改为 C:\Users\BenBouali\Anaconda3\envs\tensorflow-gpu
preview
这样,您可以在单击它时使用该快捷方式打开某个环境,您也可以将其添加到您的路径中,现在您只需输入名称即可从 Windows 运行框中运行它快捷方式。
【讨论】:
【参考方案11】:正确答案(截至 2018 年 12 月)是……你不能。升级conda install python=3.6
可能会奏效,但如果您有必要但无法卸载的软件包,则可能不会。
Anaconda 使用名为 base
的默认环境,您无法创建具有相同名称的新环境(例如 python 3.6)。这是故意的。如果你希望你的基础 Anaconda 是 python 3.6,正确的方法是为 python 3.6 安装 Anaconda。作为包管理器,Anaconda 的目标是封装不同的环境,因此为什么必须将源激活到它们中,以及为什么不能随意随意切换基本包,因为这可能会导致生产系统出现许多问题。
【讨论】:
如果我的基础环境坏了,我想用一个可以工作的环境替换它怎么办? @endolith 如果我的基础环境坏了,我想用一个可以工作的环境替换它怎么办?重新安装 Conda。 @AMC 我已经重新安装了很多次。我想要一种方法来恢复良好状态而不重做所有事情 @endolith 您已经多次重新安装以解决相同的问题?最后是怎么坏掉的?我们应该在别处讨论这个问题,我创建了一个chat room。【参考方案12】:对于 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)start ...\cmd.exe 2)run ...\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 的默认环境。您可以将此快捷方式保留在开始菜单中或固定在任务栏中。
此方法的一个优点是您可以创建一些快捷方式,每个快捷方式都有不同的环境作为默认环境。您也可以通过填写属性窗口的Start in表单来设置默认文件夹
希望对你有帮助
PS:不需要查找Anaconda Prompt,可以通过更改任何快捷方式的目标来完成。但是你需要知道 cmd.exe 和 activate.bat 的路径
【讨论】:
这应该是最佳答案 我使用这种方法,但我的第一部分有点不同:C:\Windows\System32\cmd.exe /c start ""
不知道我是如何得出那个解决方案的,但这是我发的一篇关于它的帖子syntax【参考方案13】:
我对这里提供的任何答案都不满意,因为在我的平台上激活环境需要几秒钟(无论出于何种原因)
我修改了我的路径变量,以便我想要的默认环境优先于实际默认值。
在我的例子中,我使用以下命令来完成环境“py35”:
setx PATH "%userprofile%\Anaconda3\envs\py35\;%PATH%"
setx PATH "%userprofile%\Anaconda3\envs\py35\Scripts;%PATH%"
要找出您的环境的存储位置,请激活它并输入where python
。
我还不确定这种方法是否有任何缺点。因为它还会更改 conda 可执行文件的默认路径。如果是这种情况,请发表评论。
【讨论】:
【参考方案14】:在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"
仅此而已。
【讨论】:
问题是什么? 我尝试了这个解决方案,但它仍然在我的路径上显示 anaconda2,有什么想法吗? 这不会设置默认环境。它似乎绕过了 conda 并假装认为“python3”是默认值。 “conda info -e”仍将“root”显示为当前环境。我仍在寻找一种方法来告诉 conda 哪个是默认值。 这不会从 conda 的角度设置默认环境。它似乎绕过了 conda 并假装认为“python3”是默认值。 “conda info -e”仍将“root”显示为当前环境。要解决此问题,您还需要设置 CONDA_PREFIX 和 CONDA_DEFAULT_ENV。即便如此,答案仍然是一个黑客。为什么不直接运行 'source activate.bashrc
或 .bash_profile
?我在关注此jattenberg.github.io/PDS-Fall-2013/assets/install/… 时在 cygwin 下找到了一个。但我不确定是否应该更改以获得 OP 所需的功能。以上是关于如何更改默认 Anaconda python 环境的主要内容,如果未能解决你的问题,请参考以下文章
如何在VSCode上更改Python(Anaconda)的默认工作目录?