こんにゃくの勉強記

プログラミング好きなとある大学生の勉強メモ的な、日記的なものです

【VSCode】Remote SSH で conda activate が使えなかった話

初めに

当方、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 <仮想環境名> を使用すると仮想環境を起動できました。

github.com

一度 $ source activate <仮想環境名> で仮想環境を起動した後だと、2回目以降は $ conda activate <仮想環境名> も使えるようになりました。一体どういう仕様なのでしょう...

Issue はざっと目を通したのですが、 conda も仮想環境も英語もよくわかっていないので、原因を理解することはできませんでした。

また、仮想環境を抜けるときは、 $ deactivate ではなく、$ conda deactivate を使用する必要がありました。これはエラーメッセージで教えてくれるのですぐわかりました。

$ deactivate
DeprecationWarning: 'source deactivate' is deprecated. Use 'conda deactivate'.

終わりに

conda の使用自体初めてだったので、conda の使い方を間違えているのか、VSCode が悪いのか、もしくは Remote SSH やサーバーの設定が悪いのか、少し困ってしまいました。すぐに解決策が出てきたのでよかったです。

原因を理解していないままなのは気持ち悪いですが、とりあえず解決できましたし、原因の理解より先にやるべきことたちがあるので、一旦このまま次に進みます。