2020年12月11日金曜日

pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。(プログラム言語PythonとDjangoのバージョン管理とパッケージ管理用です。)

https://qiita.com/KRiver1/items/c1788e616b77a9bad4dd

シェアしました。

一部引用しました。


Pipenv

https://github.com/pypa/pipenv

Pipenvは、virtualenvの仕事に加えて、Pipfileという次世代のパッケージ管理システムを実装したツールである。
Pipenvは仮想環境を作成するだけでなく、pipと同じようにパッケージ管理を行うことができる。その際、pipとは異なり、「何が要求されたパッケージで、何が依存関係の解決に必要だったパッケージなのか」を記録することができる。
これによって、どのパッケージがどのパッケージによって要求され、どのパッケージによってバージョン固定されたのかがわかり、パッケージリストがきれいになるのである。

Pythonに馴染みがない人にとっては、あまり利点がわからないかもしれない。
実際、あまり開発をしないのであれば、venvで十分なのではないかという気もする。

あと、これは個人的な主観なのだが、インターフェースが非常にわかりやすい。
新しいプロジェクトで仮想環境を作りたければpipenv installとするだけ、git cloneしてきたプロジェクトに置いてあったPipfileを読み込むときもpipenv installとするだけ、pipの代わりに使うときもpipenv install <package-name>pippipenvに置き換えるだけ。大変わかりやすい。

まとめ

インタプリタ切替パッケージ切替パッケージインストール
pyenv
virtualenv
pip
venv
pyenv-virtualenv
virtualenvwrapper
Anaconda
Pipenv

pyenv-virtualenvをやめ、Pipenvを使う

以上の仮想環境ツールを比較した上で、私はpyenv-virtualenvをやめ、Pipenvを使うことにした。

pyenv-virtualenvをやめたことで、私のshellは爆速になった。もう二度とpyenv-virtualenvを使うつもりはない。

Pipenvはあくまでも仮想環境マネージャなので、Python自体のインストールは別の方法で行う必要がある。
pyenvに任せてもいいのだが(実際、Pipenvにはpyenvと協調する仕組みがある)、pyenvのやってくれることのうち「状況に応じて適切なPythonインタプリタを用いられる」という部分はPipenvがすでに担当しており、仕事が被ってしまうと思ったので、Pythonは手動でインストールすることにした。

実際、普通の人間に必要なPythonは最新バージョンのstableなpython(現時点では3.7.3)だけであり、あとは時々3.6や3.5、考古学者のために2.7が必要になるくらいである。Pyenvのような強いシステムの出る幕はたぶんない。

Pipenvのインストールは単純で、公式ページに書かれている通り、brewaptで入れたり、あるいはpython -m pip install --user pipenvとするだけである。

新しくプロジェクトを立ち上げる際には、

~$ mkdir project1  # Projectを作成
~$ cd project1  # Projectに移動
~/project1$ pipenv install  # 仮想環境を作成
~/project1$ pipenv shell  # 仮想環境に入る

とすればよい。
次からは単にpipenv shellとするだけである。

おわりに

この記事では、pyenvvirtualenvpipvenvpyenv-virtualenvvirtualenvwrapperAnacondaPipenvを並べ、それらの特性について軽くまとめた。
この記事が皆さんのPythonライフの一助となれば幸いである。

Pipenv流行れ。

0 コメント:

コメントを投稿