はじめに
はじめましてa-min3150です。エンジニアへの転職を目標に学習中です。
アウトプットのためEnvaderで学習したこと、ハマったことなどを書いていきたいと思います。
今回の学習内容
EnvaderでPythonの環境構築について学習したのでアウトプットします。
今回は第3回目でpip
コマンドの使い方についてです。
第1回(Pythonとは)はこちら
第2回(pyenvについて)はこちら
第4回(venvについて)はこちら
第5回(virtualenvについて)はこちら
第6回(requirements.txtの使い方)はこちら
第7回(git cloneの使い方)はこちら
pipコマンドとは
pip
コマンドはpythonのパッケージをインストールするために使用するコマンドです。
パッケージとは何かについては下記のリンクを参照してください。
macOSでpipを使えるようにするには
前回のときにpyenv
コマンドを使ってインストールしたPythonと同時にpipもインストールされています。
pip -V
で確認してみましょう。
pip -V
pip 21.2.4 from /Users/user/.pyenv/versions/3.10.2/lib/python3.10/site-packages/pip (python 3.10)
上記のようにバージョンが表示されれば、パスも通っておりpip
コマンドが使える状態となります。
pipを使ったパッケージのインストール
パッケージをインストールしたいときは、 pip install の後にパッケージ名を入力し実行することでインストールできます。
> pip install パッケージ名
パッケージのアップグレード
パッケージを最新版にアップグレードしたいときは、 pip install の後にライブラリ名を入力し実行することでアップグレードできます。
> pip install --upgrade パッケージ名
最新版か確認するときは pip list
の後に --outdated
をつけて実行することで、最新版でないバージョンのみを表示することができます。
> pip list --outdated
バージョンを指定してインストール
パッケージ名の後に ==
とつけてその後にバージョンを記入することで、バージョンを指定してインストールすることができます。
最新バージョンが不安定な時や、特定のバージョンでないと動作しない時などに利用します。
逆に以前のバージョンを指定すればダウングレードをすることも可能です。
> pip install パッケージ名==バージョン
以下のように入力することでインストール可能なバージョンを確認することもできます。
> pip install パッケージ名==
パッケージのアンインストール
パッケージをアンインストールしたいときは、 pip uninstall の後にパッケージ名を入力し実行することでアンインストールできます。
> pip uninstall パッケージ名
インストール済みのパッケージの確認
pip list
を実行することで既にインストールされているパッケージを確認することができます。また、pip freeze
を実行するとパッケージとバージョンを確認することができます。
> pip list
> pip freeze
バージョンの控えを取る方法
パッケージの中には、他のパッケージの特定のバージョンのみに対応している物もあります。その場合にパッケージをアップグレードしたときに、正常に動作しなくなってしまうかもしてません。そのような時のために通常バージョンの控えを取っておきます
控えの取り方は先ほど紹介した pip freeze
を使用します。実行すると今インストールしているパッケージとバージョンが出力されるので、その出力をテキストファイルに保存することで各バージョンの控えを作成します。また、保存しておくテキストファイルは基本 requirements.txt
という名前のファイルを使用します。
$ pip freeze > requirements.txt
# requirements.txt の中身
asgiref==3.5.0
beautifulsoup4==4.10.0
Django==4.0.2
django-bootstrap5==21.3
django-jquery==3.1.0
fontawesomefree==6.0.0
PyMySQL==1.0.2
soupsieve==2.3.1
このようにバージョンの控えを作成しておくことで、正常に動作しなくなった場合でも元のバージョンに戻すことができます。
> pip install -r requirements.txt
pip install
の後に -r
と requirements.txt
を入力し実行することで控えて置いたバージョンに戻せます。
バージョンの控えは開発をする時や、githubやアプリケーションを公開するときに必ず利用するので、よく理解しておきましょう。
macOSでpipコマンドを実践してみる
PythonのフレームワークであるFlaskを下記リンクのやり方を元にインストールをしていきます。
仮想環境venv
を起動してpip listを実行。
(venv
の使い方についてはこちらを参照ください)
pipとsetuptoolsのみがインストールされていることが確認できました。
(venv) macOS:test_pip user$ pip list
Package Version
---------- -------
pip 21.2.4
setuptools 58.1.0
WARNING: You are using pip version 21.2.4; however, version 22.0.4 is available.
You should consider upgrading via the '/Users/user/Desktop/test_pip/venv/bin/python -m pip install --upgrade pip' command.
pipのバージョンが古いですよと警告が出たので--upgrade
コマンドを実行
(venv) macOS:test_pip user$ pip install --upgrade pip
Requirement already satisfied: pip in ./venv/lib/python3.10/site-packages (21.2.4)
Collecting pip
Using cached pip-22.0.4-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 21.2.4
Uninstalling pip-21.2.4:
Successfully uninstalled pip-21.2.4
Successfully installed pip-22.0.4//upgradeできた
バージョンを指定してFlaskをインストールする
(venv) macOS:test_pip user$ pip install flask==2.0.3
インストールされたか確認
(test) macOS:test_venv user$ pip list
Package Version
------------ -------
click 8.1.2
Flask 2.0.3
itsdangerous 2.1.2
Jinja2 3.1.1
MarkupSafe 2.1.1
pip 22.0.4
setuptools 58.1.0
Werkzeug 2.1.1
Flaskのバージョン2.0.3とそれに関連したパッケージが一緒にインストールされているのを確認できました。
Flaskが最新バージョンかどうか確認する。
(test) macOS:test_venv user$ pip list --outdated
//最新バージョンは2.1.1.があると教えてくれる。
Package Version Latest Type
---------- ------- ------ -----
Flask 2.0.3 2.1.1 wheel
インストールしたパッケージのバージョン情報をrequirements.txtに保存する。
(test) macOS:test_venv user$ pip freeze > requirements.txt
//requirements.txtの中身を確認する。
(test) macOS:test_venv user$ cat requirements.txt
click==8.1.2
Flask==2.0.3
itsdangerous==2.1.2
Jinja2==3.1.1
MarkupSafe==2.1.1
Werkzeug==2.1.1
以上のようにpip
コマンドを使えば、インストールしたパッケージを管理できるようになります。
皆さんも自分のPCで実践してみてください。
まとめ
- pythonパッケージをインストール(
pip install
)する方法 - pythonパッケージをアップグレード(
pip upgrade
)する方法 - pythonパッケージをアンインストール(
pip uninstall
)する方法 - インストール済みのパッケージの確認(
pip list
pip freeze
)する方法 -
requirements.txt
でのインストールしたバージョンの保存方法
について解説しました。
pip
コマンドは仮想環境を作って使用することで、「システム全体にインストールする場合(global)」と「仮想環境下のみでインストールしたい場合(local)」を分けることができ、また仮想環境ごとに独立させてパッケージを管理できるようになります。
次回はvenvコマンドでの仮想環境について解説します。
引用サイト
- Envader(エンベーダー):https://envader.plus/
- コース一覧:https://envader.plus/course
- Python環境構築コース:https://envader.plus/course/8
- 今回解説したコースシナリオ:https://envader.plus/course/8/scenario/1072