Edited at

ワイが個人的に便利だと思っていてよく使っているPythonライブラリ(pip)たち

この記事はLIFULL その3 Advent Calendar 2018の7日目の記事とされている恐れがあります


謝罪

会社の後輩の記事をパクりました。

ワイが個人的に便利だと思っていてよく使っているJavaScriptモジュール(npm)たち


ここから本題

ここ1年の中で :star: しまくったgithubリポジトリを年末調整すると同時に、

使っていて個人的に便利だなと思っているものを簡単に紹介しようと思います。


モジュール


Poetry

仮想環境の管理から、ライブラリの公開までやってくれる便利な開発ツール

正直、これを紹介するためだけにこの記事を書きました

BeProud Advent Calender 2018の『Poetryを使ったPythonパッケージ開発からPyPI公開まで』という記事も読んでください


Pipenv

依存ライブラリの管理や仮想(venv)環境も作ってくれる便利なツール

ただ、Poetryがあれば正直必要ない説も出てきてしまった

pyenvでバージョン切り替えてくれる機能は地味に便利


tqdm

超長いループの進捗を表示してくれるやつ

jupyter上ではtqdm_notebookを使うので注意


joblib

いい感じにマルチプロセス/マルチスレッドの処理を実行してくれるライブラリ

地味にロギング処理とかもついてる


pyppeteer

Pythonで動くヘッドレスなChromeです

元記事にもあったpuppeteerのポート

ただ、Pythonのasync関数は慣れず、Selenium使ったほうが楽説ある


kennethreitz/requests

HTTPクライアント

スタンダードすぎてPython公式のurllibのドキュメントでもおすすめされてる


kennethreitz/requests-html

クローリングするときに便利なライブラリ

簡単なものは今までrequests + BeautifulSoupを使って実装していたが、それらより使い勝手いい

便利なツールしか作れない開発者、kennethreitz


Flask

シンプルなWEBアプリケーションフレームワーク

WEB APIを作るときによく使ってる


click

デコレータでCLIを簡単に作れるライブラリ


retry

デコレータでretry機能をつけてくれるライブラリ

Pythonで例外処理を気合い入れて書こうとすると、どんどんネストしていってしまいがちなので


jupyter notebook

ブラウザ上でPythonコードを可視化してくれるやつ


pandas

データ分析用のデータフレームを作るライブラリ

Excelから読み書きできるのが地味に便利

個人的にR言語のdplyr/tidyrのほうが好きで、ちょっとした分析ならRStudioを立ち上げてしまうのは内緒


matplotlib

「もっと楽なグラフツールあるんじゃないか」って思いつつ、5年くらい使い続けている


pytest

Pythonのテストツール


pytest-mock

pytestにmockの機能を追加するモジュール

実体は unittest.mock とかをラップしてるだけだが、個人的にお気に入り


pylint

Lintツール

毎回ignore設定されるE501


tox

ライブラリ作るときに複数バージョンのテストが必要になるとき便利

あとpylintとかの設定も管理・実行できるので良い


読み物系リポジトリ(?)


awesome-python

Pythonのワオなライブラリまとめ


Python チュートリアル

Python書く前に読んでおいた方が良さそうなことしか書いてないのでおすすめ

もはやリポジトリでもなんでもない


kennethreitz

requestsやPipenvなどの作者

API設計がきれいなので見ておくといい

Webフレームワークの「responder」とかも、この記事で気になってるもののまだ試していない


最後に

いかがでしたでしょうか。

個人的には、Pythonはライブラリに恵まれているのもあって、割と簡単に必要なプログラムが実装できます。ただ、非同期処理(async/await)やロギング処理で毎回定型文があるし、もう少し便利なライブラリが無いか(もしくはうまくラップする方法が無いか)探しています。

それではよいお年を!