同種の記事は数多くあるが、今となってはマイナーなツールが混じっていたり、役割の違いがわかりにくかったりしていたので、簡単にまとめ直した。
機能まとめ
Pyflowによる比較表を書き直した。pipとvenvはPython 3.4以降標準で付属している。
ツール | パッケージインストール | 依存関係解決 | Pythonバージョン管理 | 仮想環境構築 | ビルド・パブリッシュ |
---|---|---|---|---|---|
pip | 〇 | ||||
venv | 〇 | ||||
Anaconda | 〇 | 〇 | 〇 | 〇 | |
pyenv(-virtualenv) | 〇 | (〇) | |||
Pipenv | 〇 | 〇 | 〇 | ||
Poetry | 〇 | 〇 | 〇 | 〇 | |
Pyflow | 〇 | 〇 | 〇 | 〇 | 〇 |
個人の感想
Anaconda
- PATHを上書きする怪しい仕様があり、Homebrewと競合したりアンインストールに苦労したりする
- venv同様仮想環境を使うときにいちいち
activate
する必要がある- これらの問題があるのでpyenv経由で使うのが良い
-
conda install
でパッケージが見つからないときにanaconda cloudで検索する手間が発生する - Anacondaを推奨しているパッケージを使いたいときは使う
pip + pyenv (+pyenv-virtualenvプラグイン)
- Pythonバージョン管理に関しては最強
- AnacondaやPyPyも扱える
- pyenv-virtualenvによる仮想環境管理もとても楽
- 仮想環境をプロジェクト間で使い回しやすい?
- (Windows環境は知らん)
Pipenv
- 動作がどんどん遅くなっていく...
- 別バージョンのPythonを使いたくなったらpyenvと併用
Poetry
- コードを配布する予定があるときは良さそう
- 別バージョンのPython (ry
Pyflow
- まだまだ開発中という感じ