Pythonパッケージの管理にPipenvを利用しています。
今回は、Pipenvで環境構築を行うときに、よく使用するコマンドをまとめました。
前提
-
pyenv
とpipenv
がインストールされていること。
自分が環境構築をするとき
作業ディレクトリのpythonのバージョンを指定する
pyenvを使ってバージョンの切り替えを行います。
$ pyenv versions # 使用できるインストール済みのPythonのバージョンが表示される
上記コマンドを打って表示されたバージョンの中から選択します。
$ pyenv local 3.9.1 # 現在のディレクトリでバージョンを指定する
これで、コマンドを実行したディレクトリに、.python-version
というファイルが生成され、バージョンが書き込まれています。
3.9.1
pythonのバージョンを指定してpipfileを生成する
最初にpythonのバージョンを指定します。
$ pipenv --python 3.9 # 3.9でpipfileが生成される
これで、直下に次の2つのファイルが生成されます。
-
Pipfile
: インストールパッケージの情報がかかれたもの -
Pipfile.lock
: インストールしたパッケージの細かいバージョン、ハッシュ、依存関係がかかれたもの
この2つを、他の人に共有すると、同じ仮想環境を再現することが可能になります。
パッケージをインストールする
基本のインストールコマンド
$ pipenv install google-cloud-tasks
インストールしていくと、上記のPipfile
とPipfile.lock
が更新されていきます。
バージョンを指定してインストールしたい時
$ pipenv install "google-cloud-tasks==1.5.0"
Pipfileを書き換えてインストールしたい時
Pipfileを直接書き換えたのち、下記コマンドを打つことでもインストール可能です。
これであれば複数のパッケージを一度にインストールすることも可能です。
[packages]
google-cloud-tasks = "==1.5.0"
$ pipenv install
開発環境にのみインストールする
$ pipenv install flake8 --dev
パッケージをアンインストールする
$ pip env uninstall google-cloud-tasks
requirements.txtを生成する
$ pipenv lock -r > requirements.txt
GAEでPythonのパッケージをインストールするには、requirements.txt
が必要なため、よく使います。
以上で、基本的な仮想環境の定義は完了です。
この後、基本的に下記のファイルをgitに上げています。
.python-version
Pipfile
Pipfile.lock
requirements.txt
他の人が作った仮想環境を再現したい時(既存のPipfileとPipfile.lockから仮想環境を再現したい時)
Pipfile
とPipfile.lock
のあるディレクトリで下記コマンドを実行します。
$ pipenv sync
上記コマンドは、Pipfile.lock
に従って仮想環境を再現します。
他にも、再現するためのコマンドは、
$ pipenv install # Pipfileからインストール
$ pipenv update # Pipfileからインストールし、アップデートがあればアップデートする
がありますがsync
であれば、同じ環境が再現でき、かつ、依存関係の確認がないため動作が早いです。
もし、Pipfile
がなく、requirements.txt
しかない場合は、下記コマンドでrequirements.txt
からpipenvでインストールすることもできます。
$ pipenv install -r requirements.txt
pipenv installした後でやり直したくなった時
$ pipenv --rm
私は、エラーなどで環境構築に失敗した場合、上記コマンドを打ったのち、Pipfile
とPipfile.lock
の差分をStashして、再度パッケージのインストールをやり直します。
PycharmでPipenvを利用するには
弊社ではPycharmを利用しているメンバーも多いです。
環境構築を行うディレクトリでプロジェクトを開き、Preference
のPython Interpreter
から追加します。
- Base Interpreterに使用したいpyenvのpythonをおく
- Install package from Pipfileにチェックを入れる
これをするだけで、直下にあるPipfile
を参照して仮想環境の構築をおこなってくれます。便利!
あとがき
環境構築はたまにやると「どうやるんだっけ…」とよく忘れて毎回Google先生に質問してしまっているので、よく使うコマンドをまとめました。
業務であれば、上記コマンドがあれば大抵対応できます!