我已经安装了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 2.7是为了教学目的,说来话长)。无论如何,我想知道如何将默认环境更改为Python 3.4,请记住,我不想从头开始重新安装所有内容。


当前回答

尝试了source activate default_3_9和source conda activate default_3_9

但是conda激活了default_3_9

其他回答

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

我修改了我的路径变量,这样我想要的默认环境比实际的默认环境具有优先级。

在我的例子中,我使用以下命令来完成环境“py35”:

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

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

activate.py是硬编码的,当你计算conda shell生成的shell钩子时,它会将conda activate base\n发送到你的shell配置文件中。zsh钩。

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

conda config --set auto_activate_base false

然后,在~/。zshrc ~ /。Bashrc或任何你的shell配置文件来源,你可以添加以下内容(在conda shell钩子之后)来显式激活你所选择的环境:

conda activate py34

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

你也可以对Anaconda Prompt做同样的事情,等等。

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

下面是我找到的在Windows 10系统上自动激活我喜欢的环境的解决方案:

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

现在每次你打开蟒蛇提示通过这个快捷方式,它会自动加载你所选择的环境。

正确答案(截至2018年12月)是……你不能。升级conda install python=3.6可能会工作,但如果你有必要的包,但不能卸载,则可能不会。

Anaconda uses a default environment named base and you cannot create a new (e.g. python 3.6) environment with the same name. This is intentional. If you want your base Anaconda to be python 3.6, the right way to do this is to install Anaconda for python 3.6. As a package manager, the goal of Anaconda is to make different environments encapsulated, hence why you must source activate into them and why you can't just quietly switch the base package at will as this could lead to many issues on production systems.