ChatGPT解决这个技术问题 Extra ChatGPT

如何更改默认 Anaconda python 环境

我已经安装了 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 文件是在会话开始时获取的,所以如果你把 source activate 放在里面,它会影响 shell 环境。

A
Andreus

如果您只是想暂时更改到另一个环境,请使用

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...有什么建议吗?
t
tfad334

概述出于兼容性原因,有些人拥有多个 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 Exit File。启动一个新的终端窗口。键入以下内容以查看处于活动状态的环境 conda info -e

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

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

创建一个批处理文件命令,例如“my_conda.cmd”,将它放在Application Data 文件夹中。将其配置为在您打开 cmd 时自动启动。此设置在注册表中:键:HKCU\SOFTWARE\Microsoft\Command 处理器值:自动运行类型:REG_EXPAND_SZ 数据:“%AppData%\my_conda.cmd”

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


非常感谢。我发现使用我的 Mac 版本我无法摆脱 Python 2——因此按照推荐的操作设置了两个单独的环境,但是必须记住在每个新的终端窗口上激活环境非常烦人。这行得通!
当我在 Windows 10 下执行此操作时,这会导致管道损坏和命令提示符冻结。
Windows 10 上的任何人都有更好的运气吗?
这应该是公认的答案(至少对于基于 unix 的 Conda)!
M
MartyMacGyver

在 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 ',因为 conda 已经提供了它作为实现此目的的“内置”方式。
Windows 10 上是否有 .bashrc.bash_profile?我在关注此 jattenberg.github.io/PDS-Fall-2013/assets/install/… 时在 cygwin 下找到了一个。但我不确定我应该改变什么来获得 OP 所需的功能。
K
Kushdesh

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

https://i.stack.imgur.com/w7DZW.png

属性窗口的目标表单应该已经填充了文本,例如 %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 与环境 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 的路径


这应该是最佳答案
我使用这种方法,但我的第一部分有点不同:C:\Windows\System32\cmd.exe /c start ""不知道我是如何得出这个解决方案的,但这是我发布的关于它的帖子syntax
c
cgnorthcutt

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

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


如果我的基础环境坏了,我想用一个可以工作的环境来替换它怎么办?
@endolith 如果我的基础环境坏了,我想用一个可以工作的环境替换它怎么办?重新安装康达。
@AMC 我已经重新安装了很多次。我想要一种方法来恢复良好状态而不重做所有事情
@endolith您已经多次重新安装以解决相同的问题?最后是怎么坏掉的?我们应该在别处讨论这个问题,我创建了一个 chat room
B
Brandt

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

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

conda activate py34

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

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

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


这就是问题的答案!
@Brandt我有错误(我在Mac上)zsh:权限被拒绝:
D
Dulanga Heshan

永久更改

conda install python={version}

临时更改

查看您的环境

在终端窗口或 Anconda Prompt 上运行 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
S
Sean

https://i.stack.imgur.com/9VAI7.jpg

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

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

%windir%\System32\cmd.exe "/K" C:\Anaconda\Scripts\activate.bat C:\Anaconda\envs\p37

https://i.stack.imgur.com/H4XQK.jpg


F
Fijoy Vadakkumpadan

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

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

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

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


d
dominik andreas

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

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

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

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

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


H
Hamza

对于 Jupyter 和 Windows 用户,您可以将 Jupyter Notebook (anaconda3) 快捷方式中的目标路径从 C:\Users\<YourUserName>\anaconda3 更改为 C:\Users\<YourUserName>\anaconda3\envs\<YourEnvironmentName>

你可以为 Anaconda Prompt..etc 做同样的事情。

更改路径后,您可以通过在 Jupyter 中打开终端并运行 conda info --envs 来检查您的活动环境。

https://i.stack.imgur.com/loyc1.png


B
BOT_bkcd

这是我在 Windows 10 系统上自动激活首选环境的解决方案:

打开 anaconda 提示符并使用“conda env list”查找您希望使用的环境的位置。转到开始菜单,右键单击“Anaconda Prompt”并转到文件位置。创建此快捷方式文件的副本打开其属性并将目标更改为您首选环境的位置。

现在,每次您通过此快捷方式打开 anaconda 提示时,它都会自动加载您选择的环境。


B
Brian Tompsett - 汤莱恩

我在使用 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 中描述的内容无关。
K
Kream

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

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

preview

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


D
Dmitry Gotovtsev

尝试了 source activate default_3_9source conda activate default_3_9

但工作conda activate default_3_9


B
Birchlabs

当您评估由 conda shell.zsh hook 生成的外壳挂钩时,activate.pyhardcodedconda activate base\n 发送到您的外壳配置文件中。

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

conda config --set auto_activate_base false

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

conda activate py34