あらすじ
Windows 10
で、Windows Terminal
にAnaconda PowerShell Prompt
を追加する話です。
検索してもAnaconda Prompt
を追加できるものしか見つからなかったので、この記事を書きました。
※Jsonファイルによる設定だけでなく、GUI設定ができるようになったので、追記しました。
イントロ
[Anaconda
](https://docs.conda.io/projects/conda/en/latest/glossary.html## イントロ
長いことConda
に触れている人なら、誰しも最新の環境で利用したいと願っていることでしょう。
以前のアップデート
Anaconda Prompt
がPowershell
に対応しましたが、それでも完璧な対応ではありませんでした。conda init
することにより、次回からPowershellの起動毎に、conda
コマンドのための環境変数%PATH%
を設定し、(base)
仮想環境をactivate
するという、待ち時間の苦痛を強いるものだったからです。
その後のアップデート
現在はAnaconda
もしくはMiniconda
のインストール直後からAnaconda PowerShell Prompt
とAnaconda Prompt
に分かれてあらかじめショートカットが用意されており、非常に便利になっています。
統合ターミナルの登場
このような状況のなか、Windows Terminal
というものが登場しました。
様々な種類のターミナルを、単一ウィンドウ内でタブとして使うことができる優れものです。
しかも、PowerShell
の起動時間が短縮されており、ストレスフリーです。
これはもう、Anaconda Powershell Prompt
を
Windows Terminal
に追加するしかないですよね。
さて、どうやったらよいのでしょうか?
設定方法
まず、設定ファイルは、PowerShell
風に言うと、
$env:LocalAppData\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
に置いてあります。Cmd
風に言うと、
%LocalAppData%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
に置いてあります。
そして、このjson
ファイルに、以下を追記します。
{
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44b9}",
"name": "Anaconda Prompt",
"startingDirectory" : "%HOMEPATH%",
"commandline": "%userprofile%\\Documents\\PowerShell\\conda.cmd",
"icon": "%SystemDrive%\\tools\\miniconda3\\Menu\\Iconleak-Atrous-PSConsole.ico",
"hidden": false
}
設定項目の詳細
-
guid
には、New-GUID
を使用して作成した値を入れるらしいです。しかし面倒なので、Powershell
のguid
をコピーペーストして、1文字変えただけとしました。 -
name
は自分が分かれば何でもいいと思います。 -
icon
は好きなものを使っていいですが、私は、公式のアイコンにリンクしました。 -
commandline
には以下のバッチファイルを実行するように指定しています。
%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\tools\miniconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\tools\miniconda3' "
このバッチファイルの中身は、C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)
にあるショートカットファイルのうち、PowerShellの方のリンク先文字列をコピーペーストしただけです。
stackoverflowなどを見てみると、「commandline
には、スタートメニューのショートカットファイルから
リンク先文字列をコピーして貼り付ける」と書いてあるものが多いです。しかし、これは動作しません。
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)
にあるショートカットファイルのプロパティは以下ですが、これをコピーペーストしてcommandline
に指定しても正常なコマンドとして受け取ってもらえないからです。
-Command
以降の部分がどうしてもエラーになって上手くいきませんでした。といっても、Powershellの引数の受け取りかたが謎すぎるから私には理解できないだけかもしれません。なにか方法があるのでしょう。
時間がもったいないので、この文字列をバッチファイルに書き込み、それを実行させることにしました。
追記
@nmoa さんからコメント頂いた結果、commandline
に以下の設定をしたら正常に動作しました。
"%windir%/System32/WindowsPowerShell/v1.0/powershell.exe -ExecutionPolicy ByPass -NoExit -Command \"& 'C:/tools/miniconda3/shell/condabin/conda-hook.ps1' ; conda activate 'C:/tools/miniconda3' \""
そのため、jsonは下記のようになります。
{
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44b9}",
"name": "Anaconda Prompt",
"startingDirectory" : "%HOMEPATH%",
"commandline": "%windir%/System32/WindowsPowerShell/v1.0/powershell.exe -ExecutionPolicy ByPass -NoExit -Command \"& 'C:/tools/miniconda3/shell/condabin/conda-hook.ps1' ; conda activate 'C:/tools/miniconda3' \"",
"icon": "%SystemDrive%/tools/miniconda3/Menu/Iconleak-Atrous-PSConsole.ico",
"hidden": false
}
さらに、コメントいただく前は以下の画像のように、conda環境を呼び出すためのコマンドが表示されていました。
修正を行った後はキレイさっぱりです。
設定ファイル例
そして最終的に、私の場合は以下のような設定になりました。
コメント欄で教えていただいた結果を反映しています。
// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation
{
"$schema": "https://aka.ms/terminal-profiles-schema",
"defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"profiles":
{
"defaults":
{
// Put settings here that you want to apply to all profiles
"fontFace": "Cascadia Code PL",
"useAcrylic": true,
"acrylicOpacity": 0.7
},
"list":
[
{
// Make changes here to the powershell.exe profile
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Windows PowerShell",
"commandline": "powershell.exe",
"hidden": false
},
{
// Make changes here to the cmd.exe profile
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "cmd",
"commandline": "cmd.exe",
"hidden": false
},
{
//"guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
//"hidden": false,
//"name": "PowerShell",
//"source": "Windows.Terminal.PowershellCore"
"guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"name": "PowerShell Core",
"source": "Windows.Terminal.PowershellCore",
"hidden": false
},
{
"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
"hidden": false,
"name": "Azure Cloud Shell",
"source": "Windows.Terminal.Azure"
},
{
"guid": "{46ca431a-3a87-5fb3-83cd-11ececc031d2}",
"hidden": false,
"name": "kali-linux",
"source": "Windows.Terminal.Wsl"
},
{
"guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
"hidden": false,
"name": "Ubuntu",
"source": "Windows.Terminal.Wsl"
},
{
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44b9}",
"name": "Anaconda Prompt",
"startingDirectory" : "%HOMEPATH%",
"commandline": "%windir%/System32/WindowsPowerShell/v1.0/powershell.exe -ExecutionPolicy ByPass -NoExit -Command \"& 'C:/tools/miniconda3/shell/condabin/conda-hook.ps1' ; conda activate 'C:/tools/miniconda3' \"",
"icon": "%SystemDrive%/tools/miniconda3/Menu/Iconleak-Atrous-PSConsole.ico",
"hidden": false
}
]
},
// Add custom color schemes to this array
"schemes": [],
// Add any keybinding overrides to this array.
// To unbind a default keybinding, set the command to "unbound"
"keybindings": []
}
結果
追記 2021/04/29
参考
設定項目について、より詳しく知りたい人は、[Editing Windows Terminal JSON Settings](https://github.com/microsoft/terminal/blob/master/doc/user-docs/UsingJsonSettings.md## 参考
環境
この記事での環境は以下です。
- Windows 10 Pro 1909
- Chocolatey v0.10.15
- Miniconda3 4.7.12.1
- Windows Terminal 0.11.1333.0
私の場合は、Chocolatey
を利用してMiniconda3
とWindows Terminal
をインストールしています。
直接公式サイトからダウンロードしても、ほぼ同じで行けると思います。
Excelsior!