LoginSignup
3

More than 3 years have passed since last update.

pyenv-virtualenvからpipenvに浮気中

Posted at

タイトル通りですが,私はpythonを使い始めて約2年の間一途にpyenv-virtualenvを使ってきました.ですが最近友人からのススメでpipenvがとても良いとのことなのでしばらく使ってみることにしました.
今回の記事は環境構築と2週間ほど使ってみた感想を記します.

環境

  • mac OS Mojave バージョン10.14.4
  • pyenv 1.2.11
  • pipenv, version 2018.11.26
  • Homebrew 2.1.1

前提条件

この記事ではhomebrewpyenvが使えることを前提条件としています.

pipenvって何者?

さすがにまだ2週間しか使ってないので詳しくわわかりませんが,一言で言うなら「仮想環境でpythonを動かせるツール」です.
詳しくはこちらの記事が参考になると思います.

pipenv のインストール

homebrewでインストール可能なので,今回はこちらのやり方のみ紹介します.

zsh
$ brew insatll pipenv

使い方

pythonのバージョン指定

まずは任意のディレクテリ下でpythonのバージョンを指定し,下準備を整えます.

zsh
$ pipenv --python 3.7

--pythonでpythonのバージョンを指定できるので,細かく指定したい場合は上記のようにしたらいいと思います.
他にも--threeで3系,--twoで2系を選択することも可能みたいです.

パッケージのインストール

続いてパッケージのインストール方法です.

zsh
$ pipenv install numpy matplotlib pandas
Installing numpy…
Adding numpy to Pipfile's [packages]…
✔ Installation Succeeded
Installing matplotlib…
Adding matplotlib to Pipfile's [packages]…
✔ Installation Succeeded
Installing pandas…
Adding pandas to Pipfile's [packages]…
✔ Installation Succeeded
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✔ Success!
Updated Pipfile.lock (6e010b)!
Installing dependencies from Pipfile.lock (6e010b)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 9/9 — 00:00:02
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

pipenv install以降にスペース区切りで並べることで,複数のパケージをインストールすることができます.当然1つしか記述しない場合も同様に動作します.

実行例

とりあえずpythonをターミナル上で動かしてみましょう.

zsh
$ pipenv run python
Python 3.7.3 (default, Mar 27 2019, 09:23:15)
[Clang 10.0.1 (clang-1001.0.46.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

pipenvで作成した環境を使用する際は,pipenv runコマンドを使用すれば問題ないです.

また,別の方法としては以下のような方法もあります.

zsh
$ pipenv shell

(hoge)$ python
Python 3.7.3 (default, Mar 27 2019, 09:23:15)
[Clang 10.0.1 (clang-1001.0.46.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

pipenv shellでpipenvで用意した仮想環境に入ることができます.
環境から抜ける場合はexitを使用します.

zsh
(hoge)$ exit
$

続いてファイルに記述したコードを使用する場合です.

hoge.py
print("hello")
zsh
$ pipenv run python hoge.py
hello

とりあえずざっとこんな感じですかね.

感想

使ってる感じ今までpyenvとpyenv-virtualenvを使用してpythonの環境を整えていたので,そこらへんが1つにまとまったような感じですかね.率直な意見としては1つにまとまってわかりやすくなったし,わざわざパッケージのリストを出力する必要がなくなったのは嬉しいですが,ちょっとパッケージのインストールとか時間かかりすぎじゃね?って思う面もありますね.
それとパッケージのインストールは今までpipでやってたので,コマンドが長くなったのは一番しんどいですね(^_^;)

なので少しだけaliasを設定したので,必要な方はそこらへん自分好みにアレンジしてみるのもいいかもしれません!

alias ppython='pipenv run python'
alias pprun='pipenv run'
alias ppi='pipenv install'
alias ppl='pipenv run pip list'

参考資料

Pipenv: 人間のためのPython開発ワークフロー
Pipenvを使ったPython開発まとめ
pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3