cBlog

Tips for you.

pyenv + VirtualenvにするくらいならPipenvにしちゃおうと思って

スポンサーリンク
※当ブログのAmazon、iTunes、サウンドハウス等のリンクはアフィリエイトを利用しています。

リボンに「pipenv」とあるギフトラッピングされた箱

出典:pipenv.org

その他の方法による環境構築を否定するものではありません。

Pythonのパッケージのバージョン依存をVirtualenvで管理していましたが、以前のバージョンのPythonが必要になりました。PythonはHomebrewで入れたやつで、それは最新1つになるので、複数バージョンのPythonのインストール・切り替えにpyenvを導入しようと思いました。

github.com

それだったら、いっそのことパッケージ管理も公式推奨のPipenvにしてしまおうと思い導入してみました。

pipenv-ja.readthedocs.io

 

pyenvのインストール

Homebrewで入れます。

$ brew install pyenv

 

次の工程が必要です。

$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

.bash_profileに3行追加されます。手で書いてもいいですが、PATHをいじるので最後の方に置いてください。PYENV_ROOTPATHの設定は必要ありません。pyenv init -が自動でやってくれます。

 

ターミナルを再起動します。$ exec "$SHELL"だと私の環境ではダメでした。

 

Pipenvのインストール

Homebrewで入れます。

$ brew install pipenv

 

Pipenvの使い方

プロジェクトフォルダに入ります。

$ mkdir project-hoge
$ cd project-hoge/

 

インストールされていないバージョンのPythonが必要ならpyenvと連携して取ってきてくれます。

$ pipenv --python 3.6
Warning: Python 3.6 was not found on your system…
Would you like us to install CPython 3.6.9 with pyenv? [Y/n]: y
Installing CPython 3.6.9 with pyenv (this may take a few minutes)…
:
:

取ってきたPythonは(デフォルトでは)~/.pyenvにインストールされます。

 

pipと同じ感覚でパッケージをインストールできます。

$ pipenv install package-hoge

 

プロジェクトフォルダにはPipfilePipfile.lockのみ生成されます。

 

仮想環境をアクティベートするには以下。

$ pipenv shell

 

仮想環境の実体は~/.local/share/virtualenvsにあります。環境変数PIPENV_VENV_IN_PROJECT=trueを設定すればプロジェクトフォルダ内に作成することもできます。Virtualenvでは仮想環境のインストール先とプロジェクトは別々に管理されると思いますが、Pipenvではプロジェクトフォルダに入ってpipenv shellすれば関連する仮想環境が自動でアクティベートされます。

 

仮想環境になってます。

(project-hoge) $ python -V
Python 3.6.9

 

終わったらexit(またはcontrol + D)。

 

仮想環境を削除したくなったら以下のコマンド。

$ pipenv --rm

 

pyenvでインストールしたPythonを削除するにはpyenv uninstall

$ pyenv versions
* system (set by /Users/****/.pyenv/version)
  3.6.9
$ pyenv uninstall 3.6.9
pyenv: remove /Users/****/.pyenv/versions/3.6.9? y
$ pyenv versions
* system (set by /Users/****/.pyenv/version)

 

参考になる記事

www.programa.tokyo

dev.classmethod.jp

みんなのPython 第4版

みんなのPython 第4版