みなさんこんにちは。@It_is_Rです。
今回はpipenvを使って、MacにPython環境を構築する方法を紹介します。
pipenvとは
pipenvは、Pythonでの開発環境を整えるのに便利な、パッケージ管理ツールです。npmやyarnといった、パッケージ管理ツールのPython版のようなものです。
また、仮想環境を構築することも可能です。
仮想環境を作るとどのようなメリットがあるかというと、プロジェクトごとに違うバージョンのPythonを使うことができたり、パッケージなどもプロジェクトごとに管理することができます。
pipenvのインストール
まず、pipenvのインストール方法です。
今回、pipenvのインストールにはHomebrewで行っていきます。まだHomebrewをインストールしていない方は、こちらの「Homebrewの使い方。よく使うコマンド一覧と詳しい解説まとめ」を参考にしてください。
では以下のコマンドを実行します。
$ brew install pipenv
これでpipenvがインストールされます。以下のコマンドで確認してみましょう。
$ pipenv --version
pipenv, version 2020.11.15
このようにバージョンが表示されれば、インストールの完了です。
pipenvによる、プロジェクトの初期化
つづいて、pipenvを使ってプロジェクトの初期化をしていきたいと思います。
ひとつプロジェクトを作ってみましょう。
では「testproject」というディレクトリを作成し、そのなかに入ります。
$ mkdir testproject
$ cd testproject
さて、今回使いたいPythonは3.9.2(現在の最新安定版)です。
では以下のコマンドを実行しましょう。
$ pipenv --python 3
Creating a virtualenv for this project...
これでPython3で開発するためのプロジェクトを初期化することができました。
もちろん、もっと細かいバージョンの指定をすることもできます。
$ pipenv --python 3.9.2
Creating a virtualenv for this project...
このとき、pyenvやasdfがインストールされていれば、Macに入れていないバージョンのpythonが選択されたとき、自動的にインストールされます。それについては、このあと紹介します。
以下のコマンドで確認してみましょう。
$ pipenv run python -V
Python 3.9.2
ここでは、python
コマンドはpipenv run
のあとに入力する必要があります。
これでPython3の最新安定版である3.9.2が使えるようになりました。
また、Python 3.9.1は、macOS Big Surをサポートする最初のバージョンとのことです。(https://www.python.org/downloads/release/python-391/)
この方法では、それ以前のPythonではWarning: The Python you just installed is not available on your PATH, apparently.
というエラーが表示され、インストールは失敗してしまいます。
といっても、macOSにはPython 2.17.16が含まれています。これは過去のソフトウェアとの互換性のためにインストールされているようです。
pipenvとpyenvを組み合わせて使う
pipenvはpyenvと組み合わせて使うととても便利です。なんと、使いたいバージョンを指定するだけで、インストールまで自動で行なってくれます。
試しに、3.9.1を指定してみましょう。
まずはpyenvやasdfがインストールされていないときの場合です。
$ pipenv --python 3.9.1
Warning: Python 3.9.1 was not found on your system...
Neither 'pyenv' nor 'asdf' could be found to install Python.
Neither 'pyenv' nor 'asdf' could be found to install Python.
というエラーが表示されてしまいました。
ではpyenvがインストールされているときの場合です。
$ pipenv --python 3.9.1
Warning: Python 3.9.1 was not found on your system...
Would you like us to install CPython 3.9.1 with Pyenv? [Y/n]: Y
Installing CPython 3.9.1 with /opt/homebrew/bin/pyenv (this may take a few minutes)...
Success!
このように、Python 3.9.1がインストールされました。
では次のコマンドで確認してみましょう。
$ pipenv run python -V
Python 3.9.1
無事、Python 3.9.1が使われています。
Python 3.9.2に戻すには、次のコマンドを実行します。
$ pipenv --python=3.9.2
Virtualenv already exists!
Removing existing virtualenv...
Creating a virtualenv for this project...
......
$ pipenv run python -V
Python 3.9.2
仮想環境に入る方法と、抜ける方法
さて、ここまででそれぞれのバージョンのpython
コマンドを実行できるようになったのですが、いちいちpipenv run
と入力するのは大変です。
しかし、仮想環境のなかに入ってしまえば、まるでMacにそのバージョンがインストールされているかのように使うことができます。
では仮想環境のなかに入ってみましょう!
$ pipenv shell
Launching subshell in virtual environment...
これで、仮想環境に入ることができました。
ではpython
コマンドを入力してみましょう。
$ python -V
Python 3.9.2
さきほどの初期化のときに指定したバージョンのPythonを使うことができています。
では仮想環境から抜けてみましょう。
$ exit
Saving session...
これで仮想環境から抜けることができました。python -V
を実行すると、Macにもともと入っていたバージョンが表示されます。
$ python -V
Python 2.7.16
パッケージのインストール
つづいて、パッケージのインストールについてです。
パッケージのインストールにはpipenv install <パッケージ名>
を使います。
$ pipenv install flask
Installing flask...
pipenv
コマンドは、仮想環境のなかからでも、外からでも、実行することができます。
仮想環境のなかであればpip
コマンドも使えるのですが、pipenv install <パッケージ名>
を使っておいたほうが、Pipfileの[package]
にインストールしたものが記録されるので、別に同じ環境を作りたいときなどに便利になります。
Pipfileを使ったパッケージのインストール
さて、さきほどパッケージのインストールをしましたが、その情報はPipfileに記録されています。
つまり、別の仮想環境で同じパッケージをインストールしたいとき、Pipfileからインストールすることができます。
新しいプロジェクトを作ったら、Pipfileをそのフォルダにコピペして、以下のコマンドを実行します。
$ pipenv install
Creating a virtualenv for this project...
これでかんたんに、別の仮想環境でも同じパッケージをインストールすることができます。
まとめ
pipenvを使うと、かんたんにPython開発環境を構築できます。
また、pyenvと組み合わせて使うことで、Pythonのバージョンをかんたんに指定できるようになり、さらに便利になります。
以上、pipenvを使った、MacにPython開発環境を構築する方法でした。