本稿では、Windows環境でAnacnda又はMinocodaを使ったPython仮想環境の構築方法を簡潔にご紹介します(Macもほぼ同じ、違いは文中で説明)。こちらのozaki_physicsさんの記事はより詳しいので必要に応じてご参照ください。
Anaconda又はMinicondaのインストール
Condaもpipもpythonのバージョンとパッケージを管理しますが、両者のグローバル環境での共存・競合がややこしいのでAnaconda又はMinicondaをインストールするときは少し慎重になる必要があります。現在pipを使っていて、仮想環境を構築したい場合は、このためだけにAnaconda又はMinicondaをインストールせず、pipを使うpyenv + venvなどの別の方法を検討した方がいいと思います(Windowsの方はこちらの私の記事を参照)。なおグローバル環境(root環境)でいずれか一方のみを使うと決めれば、仮想環境ではなんらかの事情によりcondaとpipが共存したとしても問題にならないような気がします(ご意見伺えれば幸いです)。
現在の環境の確認
これまで仮想環境を作成していなければ、(root)のみが表示されます。
$ conda info -e
新たな仮想環境の構築
envnameの部分に任意の仮想環境の名称を、pythonに続く等号の左側に特定のpythonのバージョンを指定します。指定がないと最新のものがインストールされると思います。これで(root)とは異なる環境ができます。
$ conda create -n envname python=3.9.6
仮想環境のActivate
続いて作った仮想環境に入ります。この操作により、シェルの冒頭の(root)の部分が、(envname)に変わったと思います。macの場合は下段にように頭にsourceを付けます。
(base)が表示されるも、activate envnameでは動かない場合は、activateの前にcondaを付けると動くことがあります。
$ activate envname
$ source activate envname
仮想環境にインストールされたライブラリーの確認
仮想環境に入った状態で、下記上段を記述するか、仮想環境の外では下段のコードで環境を指定して確認できます。
$ conda list
$ conda list -n envname
仮想環境へのライブラリーの追加インストール
envnameの部分には仮想環境の名称を、pkgnameの部分にはインストールしたいパッケージの名称を記述します。
$ conda install -n envname pkgname
仮想環境内でのpythonの実行
Anaconda promptの表示が(envname)となっていれば、当該仮想環境の内側にいますので、この状態で(root)と同じようにpythonが実行可能です。例えば、main.pyを今作った仮想環境内で実行したい場合は下記の通りです。(envname)の部分は冒頭の表示ですので、記入頂く必要はありません。また、同時に複数のAnaconda Promptを立て、それぞれ別の仮想環境をActivateすることにより、同一のサーバ内で異なる環境下にあるプログラムも実行可能です。
(envname) $ python main.py
Conda仮想環境内でのjupyter notebookの実行
Conda仮想環境でjupyter notebookを実行したい場合、ipykernelをグローバルに(ここはグローバルではなく仮想環境の内側だったかもしれません)インストールの上、下記のコードを実行するだけで設定が完了します。右のenvnameの部分はcondaで作成した仮想環境の名称を記入します。jupyter notebookを立ち上げた後、右上「new」をクリックすると、追加した仮想環境内でjupyter notebookを動かすことが可能です。
$ ipython kernel install --user --name=envname
仮想環境内から抜ける(Deactivateする)方法
処理が完了したら仮想環境から抜けて終わります。下記上段はwindowsでの方法、下段はmacです。Windowsでは2021年頃から、頭にcondaを付けるようになりました(付けない方法はdepreciated)。なお、そのままAnaconda Promptを落としても、次にAnaconda Promptを立ち上げたときは仮想環境から抜けてrootに戻っています。
$ conda deactivate
$ source deactivate
仮想環境を削除する方法
不要な仮想環境は、下記のコマンドで簡単に削除することも可能です。
$ conda remove -n envname --all
複数のシェルの立ち上げに関する不安定な挙動
既に仮想環境で動いているフォルダに対して、別の新たにシェルを立ち上げ、同一の仮想環境を適用させようとするとうまく行かないことがあります。同じ仮想環境ではあるもの、同じフォルダに対する複数環境の競合が回避されている可能性があります。この場合は、conda内の履歴に別のものを挟む趣旨で、別の仮のフォルダで、一度仮想環境を立ち上げてから、該当のフォルダに戻って同様に仮想環境の立ち上げを試みるとうまく行くことがありました(失敗することの方が多い)。また起動の順番は1. (base)のdeacivate、2.conda info -eの表示、3.activate envnameの順番がよく、無関係に思えますが、管理者権限でシェルを実行するとうまく行くことがありました。
ダブルクリックで実行する方法
Conda仮想環境にあるpythonのファイル(.pyファイル)をダブルクリックで実行することもできます。具体的な設定方法については、私のYoheiKoブログでのこちらの記事「Pythonファイルの実行方法、ダブルクリックでの実行方法」で詳しく解説していますので、ご関心ある方はご覧になってみてください。
今日も最後まで読んで頂きありがとうございました。