2023年10月版/condaの仮想環境の利用と注意点/Windows11+Python3
目次
condaを使った仮想環境の利用とpipコマンド
Anaconda Python3はデフォルトで「base」という仮想環境を使います。
仮想環境は複数作衛して使い分けることができます。
僕も、Pythonの異なるバージョンの環境を作ったり、機械学習など特殊な用途の環境は仮想環境を別に作ったりしています。
condaで新規に仮想環境を作る
ターミナルで以下のコマンドを実行して仮想環境を作ります。
conda create -n 仮想環境名 python=バージョン
例えば「boku」という名前で、python3.8の仮想環境を作るときはこうです。
conda create -n boku python=3.8
仮想環境の切り替え
VSCodeを使うなら。
Ctrl + Shift + P を押してコマンドパレットを開き、 「Pythonインタープリターを選択/Python: Select Interpreter」 をクリックして、表示された仮想環境を選ぶことで切り替えることができます。
VSCodeのメニューから実行(デバッグ)する場合なら、これだけで良いです。
ただ、ターミナルで「pip」などを実行する場合は明示的に仮想環境を切り替えて実行する必要があります。
コマンドプロンプトなどで手動で切り替えるコマンドは以下の通りです。
アクティブ(仮想環境を選択)にする。
conda activate 仮想環境名 または activate 仮想環境名
ノンアクティブにする。
conda deactivate または deactivate
condaで仮想環境をメンテナンス
仮想環境はいつの間にか増えて、使わなくなったものがゴミになって残ったりします。
時々、仮想環境が今どれくらいあるのか確認して、必要ないものは消すようにしないと結構ディスクを無駄にくいます。
仮想環境を一覧するコマンドです。
conda info -e
不要な仮想環境(以前に作成して残っているゴミ環境も含む)がある場合は、ディスクの無駄なので消したほうがいいです。
仮想環境を削除するコマンド・
conda remove -n 仮想環境名
不要パッケージやenvを削除するコマンドと実行イメージです。
conda clean -all
続けて仮想環境を使うときの注意点を2つ書きます。
注意点1:仮想環境ごとに作業フォルダをわける
僕の経験上、仮想環境を複数作成したらPythonのソースを置く作業フォルダも仮想環境ごとに用意するほうがストレスがないです・・という話です。
使い込んでいくと仮想環境はどんどん増えていきます。
仮想環境が違うとPythonのバージョンが違ったり、インストールしているパッケージの構成やバージョンが違うので、ひとつの作業フォルダでやっていると「仮想環境ごとの互換性の問題がある」ソースが混在することになります。
よって、1年くらい前にやったソースのメンテナンスをしようとしたらエラーがでて、どの仮想環境でやったのを思い出すのに時間がかかる・・みたいな、ばかげた事に僕の場合はなりましたし、ソースによて、VSCodeで以下のメッセージ("xxxxxx"はパッケージ名)が表示されたりもします。
Import "xxxxxxx" could not be resolved Pylance reportMissingImports
これは、選択している「Python インタープリター(仮想環境)」のフォルダとインポートしようとしているパッケージのインストール場所が一致していない・・というVSCodeの警告です。
いろんな仮想環境用のソースを一つのフォルダに混在していると、別の仮想環境で作榮したソースを開いて「あれあれ?」となるのは、まあ当然です。
大したことではないですけど、意外にイライラすることがあったので、僕は「作業フォルダを仮想環境ごとに用意する」事にしました。
注意点2:conda install は使わない
仮想環境の操作で「conda」を利用します。
なので「conda」のパッケージ管理の仕組み「conda install」を使おうかなという誘惑にかられるときもあるのですが、これはやめたほうが良いです。
これは僕の経験談でしかないですけど最初のうち、「conda install」でパッケージのインストールをしていて、あるパッケージがcondaのリストになくて、pipでインストールしたのがきっかけで、両方混在して使っていたことがあります。
それで、どうなったかというと、パッケージの「uninstall」をしたのをきっかけで、エラーが頻発するようになり、結局、環境を再構築する羽目になりました。
その時調べたところ、「condaとpipでは両者のパッケージの仕組みは全く異なり、基本的に互換性がない」ので、パッケージ管理でcondaとpipを混在して使うと、僕みたいな目にあう可能性が・・高くはないにしても・・あるみたいです。
なので、パッケージ管理は「pip」に統一し「conda install」は使わないが無難です。
pipでよく使うパッケージ管理コマンド
上記からの流れで、pipでよく使うコマンドをざっと書いていきます。
インストール
pip install パッケージ名
アップデート
pip install -U パッケージ名
アンインストール
pip uninstall パッケージ名
pip自身のアップデート
pip install -U pip
インストール可能なパッケージの確認
pip search パッケージ名
アップデート可能なパッケージの確認
pip list -o
インストール済パッケージの一覧/名前を指定
pip list | find "urllib"
上記で「urllib3」だけが表示されます。
インストール済パッケージの詳細情報確認
pip show パッケージ名
パッケージがインストールされているフォルダの確認もできます。
こんなもんですかね。