初めに
当方、conda 初心者です。重そうという理由で今まで使ってきませんでした。しかし、最近 conda を使う機会があり、早速使おうと思ったのですが...
$ conda activate <仮想環境名> usage: conda [-h] [--no-plugins] [-V] COMMAND ... conda: error: argument COMMAND: invalid choice: 'activate' (choose from 'clean', 'compare', 'config', 'create', 'info', 'init', 'install', 'list', 'notices', 'package', 'remove', 'uninstall', 'rename', 'run', 'search', 'update', 'upgrade', 'doctor', 'content-trust', 'server', 'build', 'token', 'env', 'repo', 'verify', 'inspect', 'develop', 'convert', 'index', 'metapackage', 'pack', 'render', 'skeleton', 'debug')
なぜか conda activate が使えないという事態に直面してしまいました。
環境
上記のエラーはく、VSCode の Remote SSH で接続したサーバー上で起きたものです。 それぞれのバージョンは以下の通りです。
ローカル環境
Mac OS Ventura VSCode 1.82.2 Remote SSH v0.106.5
サーバー環境
Ubuntu 22.04.2 LTS conda 23.7.4
試しに、ターミナルから直接 ssh して $ conda activate <仮想環境名>
を実行すると、普通に仮想環境に入ることができました。
解決策
↓ の Issue にあるように、$ conda activate <仮想環境名>
ではなく $ source activate <仮想環境名>
を使用すると仮想環境を起動できました。
一度 $ source activate <仮想環境名>
で仮想環境を起動した後だと、2回目以降は $ conda activate <仮想環境名>
も使えるようになりました。一体どういう仕様なのでしょう...
Issue はざっと目を通したのですが、 conda も仮想環境も英語もよくわかっていないので、原因を理解することはできませんでした。
また、仮想環境を抜けるときは、 $ deactivate
ではなく、$ conda deactivate
を使用する必要がありました。これはエラーメッセージで教えてくれるのですぐわかりました。
$ deactivate DeprecationWarning: 'source deactivate' is deprecated. Use 'conda deactivate'.
終わりに
conda の使用自体初めてだったので、conda の使い方を間違えているのか、VSCode が悪いのか、もしくは Remote SSH やサーバーの設定が悪いのか、少し困ってしまいました。すぐに解決策が出てきたのでよかったです。
原因を理解していないままなのは気持ち悪いですが、とりあえず解決できましたし、原因の理解より先にやるべきことたちがあるので、一旦このまま次に進みます。