"BOKU"のITな日常

BOKUが勉強したり、考えたことを頭の整理を兼ねてまとめてます。

Pythonのcondaとパッケージ管理(pip)のよく使うコマンドと注意点

f:id:arakan_no_boku:20190603172559j:plain

 

目次

Pythonのcondaのよく使う機能

僕のPython開発環境は、Windows10+Anacondaです。

arakan-pgm-ai.hatenablog.com

なので、今回は「conda」で説明をすすめます。

 

Anaconda付属ツール「conda」

condaはAnaconda付属のツールです。

condaは多機能です。

パッケージ管理ツールとしても使えますし、仮想環境管理ツールとしても使えます。

ただ、僕はパッケージ管理はpip、condaはAnacondaそのもののアップデートと仮想環境管理にのみ使うことにしています。

condaをパッケージ管理ツールとして、pipと混在して使うと時々おかしくなるからなのですが、その理由は長くなるので最後のほうにまとめることにして続けます。

 

condaの機能1:Anacondaのアップデート 

インストール済のAnacondaを最新版にアップデートします。

Anaconda自体をアップデートする場合

conda update -n base conda 

Ancondaに含まれるパッケージをアップデートする場合(オール)

 conda update --all

allは実行すると、そこそこ、時間がかかります。 

 

condaの機能2:仮想環境の作成・管理

仮想環境とは、Python で開発するときに用途に応じて作成できる専用の実行環境だとイメージすればいいです。

仮想環境を使うと、異なるバージョンの Python を使いわけたり、同じモジュールの、複数のバージョンを使い分けたりできます。

こういった仮想環境の作成・管理ができるアプリケーションは「Python3標準のvenv」もありますが、今回はcondaでやる方法です、

仮想環境を新規に作るのは。

conda create -n 仮想環境名 python=バージョン

または

conda create --name 環境名 python=バージョン

例として、python3.7で、「restapi」という仮想環境を作るなら。

 conda create --name restapi python=3.7

てな感じです。

 

作成済の仮想環境の一覧は。

conda info --env

 または

conda info -e

で行います。

f:id:arakan_no_boku:20190603205401p:plain

 

仮想環境の削除は

conda remove -n 仮想環境名 --all

です。

 

仮想環境のファイル群を作成するディレクトリパスの確認は。

conda config --show envs_dirs

です。

仮想環境を作成するディレクトリパスを指定するには、環境変数 CONDA_ENVS_PATH を設定します。

設定するパスは「C:\00boku\.conda\envs」のように、必ず「envs」で終了させます。

 

condaの機能3:仮想環境をアクティブ・非アクティブ

仮想環境をアクティブにするのは。

conda activate 仮想環境名

仮想環境をノンアクティブにするのは。

conda deactivate

です。

もっと短い入力方法で

activate 仮想環境名

deactivate

も使えますが、最近は警告メッセージがでるときがあります。

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

あくまで警告で、問題なく切り替わりますが、メッセージ通り「conda activate」と「conda deactivate」と打ち込んだほうがいいと思います。 

 

パッケージ管理(pip)のよく使うコマンド

よく使うコマンドをざっと書いていきます。

インストール可能なパッケージの確認

pip search パッケージ名

 

アップデート可能なパッケージの確認

pip list -o

 

インストール済パッケージの一覧 

pip freeze

または

pip list

pip freezeのほうが、pip自体やsetuptools, wheelなどのパッケージ管理のためのパッケージがリストされないので、見やすいです。

なお、名前を指定して絞り込みたいときは、findと組み合わせればできます。

pip list | find "urllib"

 上記で「urllib3」だけが表示されます。

 

インストール

pip install パッケージ名

 

アップデート

pip install -U パッケージ名

 

 アンインストール

pip uninstall パッケージ名

 

 pip自身のアップデート

pip install -U pip

です。

 

注意点:パッケージ管理でpipとcondaを混在させない

パッケージ管理で、condaとpipを混在して使うのは、基本NGです。

どちらか一方に決めるべきです。

でないと、環境がおかしくなる可能性があります。

実際、僕の環境でも、condaとpipを混在で使い、重複インストールの問題がおきたことがあります。

この件は、こちらの記事に詳しく紹介されています。

onoz000.hatenablog.com

最悪、どうなるかだけ引用すると。

パッケージ1つのインストールでAnaconda環境が壊れてしまい、Anacondaそのものを再インストールしない限り修復困難になってしまうことがある。

また、condaがハードリンクを用いてパッケージを共有している関係から一つの環境でやらかしてしまったが最後、他の仮想環境まで破壊されることもある。

そうです。

必ず、環境が壊れる・・わけではないですが、そういうことは発生しないにこしたことはありませんが、自分は「pip」に統一しています。 

ではでは。