🐍

'conda' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。

2023/11/18に公開

概要

  • 「conda : 用語 'conda' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。」の原因と対処方法
  • そのままでも使えるので、実害は少ないが、エラーメッセージが気持ち悪いので原因調査と対処方法をまとめる

環境

  • Windows 11
  • Visual Studio Code Version: 1.84.2
    • Python extension for Visual Studio Code (Microsoft製)
  • miniconda (conda 23.5.2)

原因

  • Visual Studio CodeのTERMINALで、PowerShellを使うように設定されている状態で、
  • (PowerShell上で)Command Prompt用のcondaのコマンドを実行しようとして
  • activateに失敗してエラーがでる

2つの対処方法

Command Promptを使うように設定を変更する

  • Settingsを開き、「terminal.integrated.defaultProfile.windows」で検索する
  • Terminal > Integrated > Default Profile: Windows において
  • Command Promptに設定する

Pythonインタプリタとconda activateの連携について

  • Pythonインタプリタの切り替え(後に述べる)をしたときに
  • conda activate をしてくれるわけではなさそうだ(不確か)
    • 起動時に切り替わるような気がするので、設定次第では切り替えができるのかもしれない(要調査)
  • 切り替わらないときは、手動で、conda activate をすればよい
    • Command Promptに設定していれば、condaコマンドが使える

PowerShellでconda環境にする(PowerShellを使いたい場合)

  • そのままでは、condaコマンドが使えないようだ(エラーが出ているので)
  • エラーは無視して、手動でPowerShell用のconda環境にするコマンド(以下に参考を書いた)を実行する
    • conda activateなどが行えるようになるので、環境を手動で切り替えれられるようになる
  • 自動で行うようにしたいが方法がみつけられていない
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& '{path}\conda-hook.ps1' ; conda activate '{path}\miniconda3' "
  • {path}は各自の環境に合わせて置換する
  • %windir% という環境変数は使えなかった

Pythonインタプリタの切り替え

  • [Ctrl]-[Shift]-[P]を押した後、「Select Interpreter」などで検索して
  • 「Python: Select Interpreter」を実行すると、インタプリタを切り替えることができる
  • 切り替えたインタプリタでPythonスクリプトを実行することができる
    • このときTERMINALのconda環境は切り替わっていないと思われるが、
    • conda activateとは無関係にPythonインタプリタが指定できる
    • conda環境は切り替わっていないので、Pythonインタプリタ以外(CUDA Toolkit、環境変数など)で、conda環境に必要なモノがある場合、エラーになる可能性がある
    • 必要に応じて、手動でconda activateを行う

メモ

  • 以下の設定項目の調査もしたい

Discussion