この記事は何
macにてpythonの開発をする時、Anacondaを使用 or Docker内にて環境を作成していたのですが、Anacondaを使用していた場面は今後はpipenvに切り替えようと思い、pipenvについて調べた時のメモ。
pipenv
Pipenv は、全てのパッケージングの世界 (bundler、composer、npm、cargo、yarnなどなど。) における最高のものをPythonの世界にもたらすことを目的としたツールです。 我々の世界ではWindowsは第一級市民です。(引用元:Pipenv: 人間のためのPython開発ワークフロー — pipenv 2018.11.27.dev0 ドキュメント)
Pipfile
にインストールしたいバージョンを指定し、そしてPipfile.lock
に実際にインストールしたバージョンが記録される。そのため Pipfile.lock
を受け取ることで、他の開発者の環境と同じ環境が再現できる。
windowsでのpythonインストール~pipenv導入まで
Pythonインストール+パスを通す
以下の手順を行う。
- Welcome to Python.orgのDownloadより自身の環境に当てはまる物をダウンロードする(Windows installer (64-bit)など)
- [設定]>[環境変数]を表示する(検索で「環境変数」と検索すれば出てくる)
- ユーザー環境変数の
Path
をクリックし、Python3.8
とPython3.8\Script\
を追加する、以下のようなパスを追加する。C:\\Users\{Username}\AppData\Local\Programs\Python\Python38\
C:\\Users\{Username}\AppData\Local\Programs\Python\Python38\Scripts\
パスを通したらコマンドラインを再起動して
$ pip install --upgrade pip $ pip install pipenv
を実行する
requirements.txt での指定をpipenvで読み込める形式にする
requirements.txt
があるフォルダにて pipenv --python 3.8.7
を実行する。以下のような出力がされた後、Pipfileが作成される。
$ pipenv --python 3.8.7 Creating a virtualenv for this project... Pipfile: ...\Pipfile Using .../Python38/python.exe (3.8.7) to create virtualenv... [= ] Creating virtual environment...created virtual environment CPython3.8.7.final.0-64 in 18515ms creator ... activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator [ ] Successfully created virtual environment! requirements.txt found, instead of Pipfile! Converting... Success!
Pipfileの指定に従ってライブラリをインストール
Pipfileのある階層にて pipenv install
を実行する。
最後に作成されたPipfileとPipfile.lockのgitでの管理について、「 git - Should Pipfile.lock be committed to version control? #598 」によると、なるべく両ファイルをコミットした方がいい。共にコミット対象にする。
script
yarnやnpmでpackage.json
でのscriptが実行できたように、pipenvにもscriptを指定することができる。他にも様々な機能がある、ドキュメントを参照。
参考:Pipenvの進んだ使い方:独自のスクリプトショートカット