admin 管理员组

文章数量: 887021

win10或win11系统右键打开cmd终端(命令行)自动激活anaconda环境

1. 引言

在使用windows7的时候,我们常常使用一个脚本来添加一个右键cmd命令,可以方便的在指定目录下使用右键打开cmd命令行。

当时是通过添加注册表信息的方式实现的,将如下信息保存在一个.reg文件中,然后双击该reg文件写入注册表即可:

Windows Registry Editor Version 5.00  
[HKEY_CLASSES_ROOT\Folder\shell\DosHere]  
@="Dos here"  
[HKEY_CLASSES_ROOT\Folder\shell\DosHere\command]  
@="cmd.exe /s /k pushd \"%V\""  

如果我们想在打开命令行的同时激活anaconda环境方便使用python,那么需要写入的信息变为:

Windows Registry Editor Version 5.00  
[HKEY_CLASSES_ROOT\Folder\shell\DosHere]  
@="Dos Here"  
[HKEY_CLASSES_ROOT\Folder\shell\DosHere\command]  
@="C:\WINDOWS\system32\cmd.exe /K \"call d:\Anaconda3\Scripts\activate.bat d:\Anaconda3\" && pushd \"%V\""  

在windows10和windows11中,也可以采用这种方式,但要注意差别:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cmdhere]
@="cmdhere"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\cmdhere\command]
@="cmd.exe /s /k C:\\Anaconda3\\Scripts\\activate.bat C:\\Anaconda3 && pushd \"%V\""


[HKEY_CLASSES_ROOT\Directory\Background\shell\cmdhere]
@="cmdhere"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmdhere\command]
@="cmd.exe /s /k C:\\Anaconda3\\Scripts\\activate.bat C:\\Anaconda3 && pushd \"%V\""

[HKEY_CLASSES_ROOT\Drive\shell\cmdhere]
@="cmdhere"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Drive\shell\cmdhere\command]
@="cmd.exe /s /k C:\\Anaconda3\\Scripts\\activate.bat C:\\Anaconda3 && pushd \"%V\""

注意上面的anaconda的位置根据自己的实际情况调整。

然而由于系统终端设计的变化,实际上可以使用一种更直观的方法----类似于linux下终端的方法。
下面我们开始介绍(注意下面的示例在windows11中进行的,windows10应该是类似的。)

2. windows11下的终端

windows10和11提供了终端功能。在文件浏览器其中,任意点击右键,我们可以看到一个菜单选项
在windows终端中打开

需要注意的是:当菜单选择中没有windows终端,说明我们系统内部没有安装windows终端,可以利用windows商店或其它方式安装。

选择它,就可以打开一个终端。默认打开的是一个powershell。

终端实际上融合不同的cmd工具,包括以前系统常用的cmd、通过wsl安装的linux等。
在标题栏中点击向下箭头我们可以看到已有的工具。比如:

图中的command prompt就是cmd命令行。ubuntu则是通过wsl安装的ubuntu系统。Azure 没用过,应该是windows提供的。

选择相应的菜单项就会打开相应的终端。

实际上我目前最常用的其实就是cmd,所以我希望能够默认打开终端就是cmd,然后还能自动的激活python环境方便运行python程序。下面我们看看怎么修改。

3. 修改终端默认为cmd命令行并激活python环境

在标题栏中点击向下箭头还有一个设置选项,点击进入,我们看到:

在启动选项卡中,第一项就是默认配置文件,我们将其更换command prompt就等于将默认的终端设置为cmd

保存后,我们在任意目录打开终端,就是一个cmd命令行。

然而我们还需要激活anaconda环境方便运行python,还需要继续设置,选择设置窗口左下位置配置文件点击CommandPrompt就可以设置cmd。

在右侧的常规选项卡中的命令行位置填入并保存:
cmd.exe /k "call d:\Anaconda3\Scripts\activate.bat d:\Anaconda3 "

有时因为字符输入等原因可能设置未必就成功,我们还可以看一下当前设置界面左侧最下方打开json文件

打开后,找到cmd.exe,我们看一下内容是否如下:

"commandline": "cmd.exe /k \"call d:\\Anaconda3\\Scripts\\activate.bat d:\\Anaconda3 \""

即:

如果里面有一些乱码,将其去掉,最重要的是注意其中对双引号的转义\"
只要这个命令正确了,那么打开就没有问题了。

4. 实践

设置完成保存后,我们可以在任意目录下打开终端,可以看见打开的是cmd

这里的前景和背景颜色变化是在外观设置中使用了solarized light配色方案。

在其中输入python,结果如下,说明我们已经激活了python使用环境。

至于其中运行python命令产生的一大段错误,主要是这个history文件中读取时编码问题导致。参考:方案,进行解决。

5. 终端使用powershell的情况

anaconda也可以在powershell中激活并使用。所以不用前面介绍cmd也是可以。
其激活方式不在使用bat脚本,所以存在一些差别。
设置步骤如下:

(1) 将anaconda路径d:\\Anaconda3\\Scripts加入path

(2) 按win+x键打开管理员终端进入powershell,运行命令:conda init powershell

(3) 运行命令Set-ExecutionPolicy -ExecutionPolicy RemoteSigned,目的是让powershell能够执行conda initpowershell 生成的脚本。安全策略 REMOTESIGNED 表示也可以执行本地安全的脚本,而从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)则需数字签名。

(4) 关闭powershell,重新打开终端即可激活anaconda并使用

6. 小结

本文简要介绍在windows11中利用系统终端打开cmd命令行并自动激活python使用环境的方法,为cmd重度使用者提供了一条快速使用路径。

7. 参考

  1. 方案

  2. 解决Win10 PowerShell无法激活Anaconda环境的问题

  3. powershell激活conda失败

  4. about_Execution_Policies

  5. https://answers.microsoft/en-us/windows/forum/all/cmd-prompt/bf5ad2c6-6991-40c6-89ea-c9d700708179

本文标签: 右键 终端 命令行 环境 系统