我安装了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,记住我不想从头开始重新安装所有内容。
- 你考虑过在你的.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脚本来检查它。
- @用户2734434 bashrc文件是在会话开始时获得的,因此如果您将source activate放入其中,它将影响shell环境。
- 我喜欢@cel的响应——我会将其与运行'conda config--set changeps1 false'结合起来,这样您就看不到配置的名称是提示。缺点是您永远不会在提示中看到配置细节。
首先,通过运行
然后运行
1
| conda install python=3.5 |
这将尝试将根环境中的所有包更新为python 3版本。如果不可能(例如,因为某些包不是为python 3.5构建的),它将向您提供一条错误消息,指出是哪个包导致了该问题。
如果使用pip安装软件包,则必须重新安装它们。
- 所以,如果我想将根环境从python 3.4更新到3.5,我可以执行conda install anaconda python=3.5?我在Windows上,还有一些PIP和其他包。当你说"最后一项在Windows中不起作用"时,你是指--clone选项,还是指你的第4个项目?
- @flutefreak它实际上可以在Windows上运行(首先运行conda update conda以确保您有最新版本)。我会更新答案。
- 是的,为了解决我在这里记录的另一个问题,conda update conda变得很有必要。我实际上做了conda update conda python=3.5,它更新了conda和python,然后conda update anaconda接受了python 3.5的更改,并相应地更新了anaconda。不确定订单是否重要,但这对我很有用。
- 这个答案似乎与更改默认环境的问题无关。
- @Bob如果您没有通过-n并且没有激活环境,那么Conda将针对默认(根)环境工作。
- @我问过你,但这不是我要问的。他不想在任何环境中更新包。他希望使PY34成为默认环境,在不进行干预的情况下处于活动状态,因此在发送"source activate"命令之前,PY34处于活动状态。
- @鲍勃,这就行了。默认的"环境"是不使用任何activate命令的活动环境。命令conda update --all python=3.5确保安装的所有包都将"更新"到python 3.5版本(更一般地说,环境中的包依赖关系是完全一致的)。
- 我必须同意这里的@bob。根环境中的包将更新为3.5,这可能解决了原始海报的特定问题。但是当您打开一个提示时,您仍然在根环境中,因此您没有指定另一个默认环境。既然每个想做到这一点的人都在谷歌上搜索到了这个问题,那么最好还是回答最初的问题。可能不可能将默认env更改为除root以外的其他内容?
- @Arjan还看了另一个答案(Jev)。这可能更接近你想要的。
- 这对我不起作用。我的默认值是python 3.4,使用标志python=3.5没有将python从3.4升级到3.5…有什么建议吗?
- 这项工作检查这个conda.io/docs/user-guide/tasks/manage-python.html
- 这个答案是不合理的。
在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,有什么想法吗?
- 这不会设置默认环境。它似乎绕过了康达,假装认为"python3"是默认值。Conda信息-e"仍然显示"根"作为当前环境。我仍在寻找一种方法来告诉康达哪一个是默认值。
- 这不会从Conda的角度设置默认环境。它似乎绕过了康达,假装认为"python3"是默认值。Conda信息-e"仍然显示"根"作为当前环境。要解决这个问题,还需要设置conda_prefix和conda_default_env。即使如此,答案仍然是一个黑客;为什么不运行"source activate",因为已经提供了conda作为"内置"方式来实现这一点。
- Windows10上有.bashrc或.bash_profile吗?我在Cygwin下面找到了一个,同时跟踪jattenberg.github.io/pds-fall-2013/assets/install/…。但我不确定我应该改变它来获得操作所需的功能。
概述出于兼容性的原因,有些人有多个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
- 非常感谢你。我发现,使用我的Mac版本,我无法摆脱python 2——所以按照建议的操作设置了两个独立的环境,但必须记住在每个新的终端窗口上激活该环境是非常烦人的。这是有效的!
- 当我在Windows10下执行此操作时,这将导致管道断开并冻结命令提示。
- 在Windows10上有人会更幸运吗?
对于Windows,anaconda带有anaconda提示,这是命令的快捷方式,可以使用它运行conda命令,而不必在路径变量中添加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)运行…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网站
- 我认为OP需要一个将基本环境更改为py36的解决方案,这样他们就不必每次启动时都运行activate py36。
我对这里给出的任何答案都不满意,因为在我的平台上激活一个环境需要几秒钟(无论出于什么原因)。
我修改了我的路径变量,使我希望作为默认值的环境优先于实际默认值。
在我的例子中,我使用以下命令来为环境"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的"运行"框中运行它。