pipenvを使ってPython開発をする方法【導入方法と使い方】
2020年11月13日
Python開発にpipenvを導入してみた時のお話
どうも、テック備忘LOGのYuki(@tech_bibo_log)です!!
今回はPython開発をより便利にするためにpipenv
を導入したときの手順に関する記事です。
Python開発では頻繁にモジュールのインストールを行いますが、プロジェクト毎に必要なモジュールは変化します。
pipenv
を使用することで、複数人で開発を行うときや、開発時にインストールしたモジュールを本番環境に準備するとき、さらには開発環境と本番環境で
使用するモジュールの区別をしたいときなどの管理を楽にすることが出来ます。
余談ですが、次の記事では当ブログを作成した時の手順について説明しています。
▽▽▽ Djangoでブログを構築した時のお話し ▽▽▽
2020/5/11
Django + Nginx + uWSGIな環境を構築する!「Hello, World」公開まで。
Djangoでブログを構築した際の実際の手順をコマンドを交えて分かりやすく紹介しています。
yuki-yamashita.site/blog/post/django-blog/
では早速やっていきましょう!!
[ 目次 (開く) ]
pipenvとは?
「pipenv」とは便利なモジュールの一つで、https://github.com/pypa/pipenvのサイトでは以下のように説明されています。
Pipenv is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the
Python world. Windows is a first-class citizen, in our world.
It automatically creates and manages a virtualenv for your projects, as well as adds/removes packages from your Pipfile
as you install/uninstall packages. It also generates the ever-important Pipfile.lock, which is used to produce deterministic builds. [ by https://github.com/pypa/pipenv ]
要約すると、、、
pipenv
は(bundler, composer, npm, cargo, yarn, etc.) などのパッケージング管理ツールでできたことを、Python開発でも可能にするために作られました。
自動的にvirtualenv
を生成・管理し、install/uninstallしたパッケージもPipfile
にて管理してくれます。
とういことです。
これまではvirtualenv
で仮想環境を構築し、pip
で必要なモジュールを都度インストールしていたと思いますが、
pipenv
を使用することで、それらを同時にやることが出来るようになるということです。
更には、あらかじめPipfile
を用意しておけば、指定したモジュールを纏めてインストールしてくれるので大変便利です。
'Pipfile'と'Pipfile.lock'について
pipenv
を使用すると必ず目にするこの2つのファイルについて、違いを説明していきます。
Pipfileとは
pip
ではインストールしたいパッケージを「requirements.txt」というテキストファイルに記述しておく仕組みでしたが、
pipenv
はこれの代替として「Pipfile」というテキストファイルを使用します。
試しにrequests
モジュールをインストールするとディレクトリ内にPipfileが作成されていると思います。
[[source]] name = "myBlog" url = "hogehoge" verify_ssl = true
[dev-packages]
[packages] requests = "*"
[requires] python_version = "3.7"
次のコマンドを実行することで「Pipfile」内に記述されたパッケージを自動でインストールしてくれます。
# pipenv install
Pipfile.lockとは
このファイルはPipfileと同時に生成されます。
このファイルでは各モジュールのバージョンまで管理しており、複数人で開発するときにモジュールのバージョンまで
完全に一致するものをインストールしたい場合は、このPipfile.lockを使ってインストールすることで実現できます。
次のコマンドを実行することで「Pipfile.lock」内に記述されたパッケージを自動でインストールしてくれます。
# pipenv sync
pipenvの導入方法
これからpipenv
のインストールが完了するまでの手順を説明していきます。
1.pipenvをインストールしよう!
# pip install pipenv
2.初期化しよう!
pipenvでプロジェクトを管理するために、まずはプロジェクトのディレクトリに移動して次のコマンドを実行します。
# pipenv --python 3 # Python3系で初期化する例です
# pipenv --python 3.6 # Python3.6で初期化する例です
3.ライブラリのバージョンについて
次のコマンドpipenv install [name]
でライブラリをインストールする際にバージョンを指定することも可能です。
ここでは[requests]のバージョン(2.20.0)をインストールしています。
※指定しない場合は、最新版がインストールされます。
# pipenv install ライブラリ名==2.20.0
# pipenv uninstall ライブラリ名 # アンインストールのコマンド
4.ライブラリをインストールをしよう!
pipenv
を使ってサードパーティライブラリをインストールしてみます。
今回はrequests
をインストールしてみましょう。
※Pipfileにはインストールしたライブラリ、Pipfile.lockにはバージョンを含めたライブラリ情報が記述されていると思います。
# pipenv install requests
5.開発用のライブラリをインストールをしよう!
開発時のみに使用し本番環境では必要のないライブラリをインストールする場合は、
次のように--dev
オプションを使用することでインストールできます。
※PipfileやPipfile.lockの[dev-packages]
部分にインストールしたライブラリが記載されていると思います。
# pipenv install --dev pyformat autopep8 flake8
6.ライブラリのバージョンのアップデートをしよう!
インストールしたライブラリのバージョンを上げたいときは次のコマンドで実行可能です。
更新のあったライブラリを確認する場合:
# pipenv update --outdated
全てまとめて更新する場合:
# pipenv update
個別に更新する場合:
# pipenv update [ライブラリ名]
7.インストールしたライブラリを確認しよう!
次のコマンドで一覧を確認出来ます。
# pipenv graph
仮想環境へ入る方法
ここまでpipenv
のコマンドを使用して、プロジェクトに関連するパッケージのインストールなど行ってきましたが、
その準備した環境を使用するには次のコマンドで仮想環境に入る必要があります。
※コマンドを実行する場所は、Pipfileのあるプロジェクトは直下ディレクトリです。
# pipenv shell # 仮想環境を立ち上げる
# exit # 仮想環境から抜ける
(ディレクトリ名-XXXXXXXX)のような文字列が表示されると仮想環境を起動は成功です。
お疲れ様でした。
これでPython開発にpipenvを導入することが出来ました。
本番環境に移行するときもこのpipenvで生成したPipfileなどを使用すれば簡単にライブラリの環境を準備することが出来ます!
まとめ
今回紹介したpipenv
のコマンドを復習しましょう。
-
初期化:
pipenv --python バージョン指定 -
ライブラリをインストール(バージョン指定可能)
pipenv install ライブラリ名==2.20.0 -
ライブラリをアンインストール
pipenv uninstall ライブラリ名 -
開発環境様にライブラリをインストール(バージョン指定可能)
pipenv install --dev ライブラリ名==2.20.0 -
ライブラリの更新情報を確認
pipenv update --outdated -
ライブラリを個別にバージョンアップ
pipenv update <ライブラリ名> -
ライブラリをまとめてバージョンアップ
pipenv update -
ライブラリ一覧を確認
pipenv graph -
仮想環境に入る
pipenv shell -
仮想環境から抜ける
exit
とてもシンプルで簡単ですね。
以上、ありがとうございました。