目次
pipとは
pip
はPythonのパッケージ管理ツールです。- パッケージは公式が配布しているものと、サードパーティが配布しているものがあります。
- サードパーティのパッケージはPyPIにて配布しています。
- Pythonのパッケージ管理ツールは他に、
easy_install
とかconda
があるらしいです。 pip
はインストールしてすぐ使えるので、特にこだわりがなければこれでいいんじゃないかと思います。
バージョン確認(-V)
まずはバージョン確認ですね。
バージョン確認には-V
オプションを使います。
$ pip -V pip 20.3.1 from /home/fumo/.local/lib/python3.8/site-packages/pip (python 3.8)
インストール済みのパッケージを確認(list, freeze)
インストール済みのパッケージを確認するにはlist
かfreeze
コマンドを使います。
両者は表示のされ方がちょっと違います。
list
$ pip list Package Version ---------------------- -------------------- astroid 2.4.2 attrs 19.3.0 Automat 0.8.0 beautifulsoup4 4.9.3 blinker 1.4 : : (省略) :
freeze
$ pip freeze astroid==2.4.2 attrs==19.3.0 Automat==0.8.0 beautifulsoup4==4.9.3 blinker==1.4 : : (省略) :
パッケージをインストールする(install)
パッケージをインストールするにはinstall
コマンドを使います。
ここでは例としてnumpy
をインストールしています。
$ pip install numpy Defaulting to user installation because normal site-packages is not writeable Collecting numpy Downloading numpy-1.21.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.8 MB) |████████████████████████████████| 15.8 MB 925 kB/s Installing collected packages: numpy Successfully installed numpy-1.21.2
バージョンを指定してインストールするには以下のようにします。
$ pip install 'numpy==1.21.2'
パッケージを更新する(install --upgrade)
パッケージを更新する場合はinstall
コマンドに--upgrade
オプションを付けて使います。
$ pip install --upgrade numpy
パッケージをアンインストール(uninstall)
パッケージをアンインストールするにはuninstall
コマンドを使います。
$ pip uninstall numpy
-y
オプションを付けると、確認をスキップしてアンインストールできます。
$ pip uninstall -y numpy
パッケージを一括でインストールする(requirements.txt)
requirements.txt
という名前1でテキストファイルを用意し、そこに必要なライブラリとバージョン情報を記載しておきます。
requirements.txtの例
autopep8==2.0.2 pycodestyle==2.10.0 PyYAML==6.0 toml==0.10.2
freezeコマンドを利用
- こちらで説明した
freeze
を使うと、この形式のテキストが出力できます。 - リダイレクトで
requirements.txt
を作成すれば、他の環境で同じライブラリをインストールするのが楽になります。requirements.txtをfreezeのリダイレクトで作成$ pip freeze > requirements.txt
一括インストール(install -r)
-r
オプションでテキストを指定してインストールを実行します。requirements.txtを使って一括インストール$ pip install -r requirements.txt
バージョンの書き方
- バージョン
==
だけでなく、色々あります。詳しくはドキュメントを参照ください。例SomeProject SomeProject == 1.3 SomeProject >= 1.2, < 2.0 SomeProject[foo, bar] SomeProject ~= 1.4.2 SomeProject == 5.4 ; python_version < '3.8' SomeProject ; sys_platform == 'win32' requests [security] >= 2.8.1, == 2.8.* ; python_version < "2.7"
パッケージをローカルにダウンロードしてインストールする
ネット環境が使えない場合など、一度パッケージをwhl
形式でダウンロードしておいて、インストールすることが可能です。
1. whlをダウンロードする
ダウンロードするにはdownload
コマンドを使います。
ここでは例としてpandas
をダウンロードしています。
$ pip download pandas Collecting pandas Downloading pandas-1.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.5 MB) |████████████████████████████████| 11.5 MB 1.5 MB/s Collecting numpy>=1.17.3 Using cached numpy-1.21.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.8 MB) Collecting python-dateutil>=2.7.3 Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB) |████████████████████████████████| 247 kB 1.9 MB/s Collecting pytz>=2017.3 Downloading pytz-2021.3-py2.py3-none-any.whl (503 kB) |████████████████████████████████| 503 kB 1.8 MB/s Collecting six>=1.5 Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) Saved ./pandas-1.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Saved ./numpy-1.21.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl Saved ./python_dateutil-2.8.2-py2.py3-none-any.whl Saved ./pytz-2021.3-py2.py3-none-any.whl Saved ./six-1.16.0-py2.py3-none-any.whl Successfully downloaded pandas numpy python-dateutil pytz six
ダウンロードしたwhl
ファイルはカレントディレクトリに置かれます。
$ ls numpy-1.21.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl pandas-1.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl python_dateutil-2.8.2-py2.py3-none-any.whl pytz-2021.3-py2.py3-none-any.whl six-1.16.0-py2.py3-none-any.whl
2. whlをインストール
ローカルに落としてきたwhl
ファイルを指定してインストールしていきます。
以下2つのオプションを使います。
--no-index
:PyPIは参照しない(ローカルを参照するために設定)--find-links=<参照する場所>
:指定した場所を参照する
pip install --no-index --find-links=<whlファイルへのパス> <モジュール名>
上でダウンロードしたものを/tmp/whl
に置いてある想定なら、以下のようなコマンドになります。
$ pip install --no-index --find-links=/tmp/whl/numpy-1.21.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl numpy $ pip install --no-index --find-links=/tmp/whl/pandas-1.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl pandas $ pip install --no-index --find-links=/tmp/whl/python_dateutil-2.8.2-py2.py3-none-any.whl python_dateutil $ pip install --no-index --find-links=/tmp/whl/pytz-2021.3-py2.py3-none-any.whl pytz $ pip install --no-index --find-links=/tmp/whl/six-1.16.0-py2.py3-none-any.whl six
参考
関連メモ
参照
参考サイト
- (侍エンジニア) 【Python入門】pipとは?使い方をわかりやすく解説!
- (GAMMASOFT) pip install を手動でローカルにダウンロードしたファイルで行う方法
- (note.nkmk.me) Python, pipでrequirements.txtを使ってパッケージ一括インストール
-
名前は任意です。requirements.txtでなくても好きな名前で大丈夫です。 ↩︎