Anaconda と Visual Studio Code

Windows で Anaconda を使用して主に Python でコーディングしたりしています。Notebook 中心でスクリプトファイルをいじるときは Windows 用 Python 付属の IDLE を少し使うみたいな感じだったのですが、最近思い立って Visual Studio Code 環境に移行しつつあります。で、このエントリは Anaconda 用に Visual Studio Code を設定したときの覚え書きです。Python Extension をインストールした後あたりからの話です。

Python interpreter の選択

公式 Tutorial にも書いてあるしエディター上でもメッセージが出たりしますが、まずは Python interpreter を選択しなければなりません。ここで Anaconda 環境の python.exe を選択します。

conda.bat のあるところにパスを通しておく

作成したスクリプト実行時はまず conda コマンドが起動され、選択されている python.exe に応じた仮想環境が activate されてスクリプトが実行されるわけですが、この conda が見つからずエラーになってしまいます。Visual Studio Code のドキュメントをみると python.condapath を設定するとあるのですが、これが効きません。

ググってみると、この設定での成功例は見当たらないし、関連ありそうな Issue は Open のままっぽいので、素直にパスを設定することにしました。Windows 「システムの詳細設定」から環境変数で Path に “C:\ProgramData\Anaconda3\Scripts” を追加しています。

conda init powershell を実行する

Visual Studio Code 内で起動するターミナルではデフォルトで PowerShell が起動されるようです。Anaconda プロンプトを起動後、以下のコマンドを実行し Anaconda 関連初期化処理をPowerShell 用初期化スクリプト (profile.ps1) に追加します。

conda init powershell

PowerShell 実行ポリシー変更

デフォルト設定のままだと初期化用の profile.ps1 が実行許可されずエラーとなってしまうため、PowerShell Execution Policy を緩くします。ここではローカルのスクリプトは署名がなくても実行できるようにします。(RemoteSigned: 詳細はこちら)

以下を管理者権限で起動した PowerShell 上で実行します。

 Set-ExecutionPolicy RemoteSigned 

以上で Python スクリプトを Visual Studio Code から起動できるようになったはずです。

ということをもろもろ確認しながら書いていたらここの回答そのままじゃん、と見つけて思ってしまいました。やはり探すべきは stack overflow ですよね。