yuji0602’s blog

日々思っていることなど。

pythonのrequirements.txtやPipfileにて利用しているパッケージを書いてみた

ここ2年位仕事でpythonを利用しているのですが、なんのパッケージを使っているか自分でも分からなくなってきたのでまとめてみました。

本を見たりとか独学でやっていたので割にpythonは思いのほか良く書けるので気に入っています。サンプルコードもあちこちで見られるのではかどりますね。

仕事ではpython3.6.4を利用しています。Webフレームワークを触ることは無く、スクリプト用途で使っていました。

Genderize

名前から性別を取得する機能。JamesとかEvaとかそういう名前から性別を推測してくれます。

pypi.org

PyYAML

yamlファイルを読んで辞書型で値を取得する機能。tomlとか色々使ってますがyamlも使ったりしてたので利用してました。

pypi.org

SQLAlchemy

pythonのORMモジュール。BigQueryを利用するのであまりDBアクセスをしてなかったのですが、たまたま利用する機会があったので使ってみました。

pypi.org

beautifulsoup4

サイトをスクレイピングするための機能。何かとお世話になっています。

pypi.org

boto3

AWSを仕事で利用しているのでこれを使っています。S3やSQSに接続する時に使うことが多いです。

pypi.org

census

米国国勢調査局のAPI用の簡単なラッパー機能。郵便番号や地域コードから人口や所得などを取得するために利用していました。

pypi.org

cerberus

バリデーションを作成する機能。色々とバリデーションを作りたい時に利用していました。

pypi.org

docopt

コマンドラインツール作成する時のインターフェース機能。引数の-hでヘルプを出したりとかオプションの引数とか設定することが出来ます。よく使っています。

pypi.org

freezegun

テストで日付を固定したい時に利用する機能。これを利用して日付を固定すると、日付が変わったからテストがコケるとかが無くなります。

pypi.org

google-api-python-client

googleAPIを利用するための機能。googleスプレッドシートの読み書きをする時に利用しています。レポート作成するとか何かしらのデータを参照するとかが主な用途です。

pypi.org

google-cloud-bigquery

BigQueryを利用するための機能。どこかのタイミングでバージョンが上がって修正が大変だったので、バージョンアップはよく見ておいたほうが良いなと思いました。

pypi.org

google-cloud-language

googleのテキスト分析するAPIを利用するための機能。何かしらの商品のレビュー情報から感情分析とか公文分析とかしてたりしました。

pypi.org

google-cloud-translate

googleの翻訳APIを利用するための機能。翻訳して便利だなーと思ってみてたのですが、利用頻度を上げると結構なお値段になりそうなのであまり利用しなくなりました。

pypi.org

gspread

googleスプレッドシートを利用するための機能。今はgoogle-api-python-clientを使っています。

pypi.org

html5lib

スクレイピングする時に利用していました。htmlファイルを読むので、適当なサイトからHTMLファイルをダウンロードしてからこれを利用してスクレイピングをするテストを書くとかしていました。

pypi.org

httplib2

http通信をするための機能。googleAPIで認証を取るところとかで利用しています。

pypi.org

jaconv

ひらがな・カタカナ・全角・半角の文字種変換する機能。日本語を扱う時の揺れを吸収したりする時に利用しています。

pypi.org

janome

形態素解析をする時に利用した機能。これ自体は特に利用に苦労していないのですが、利用するための辞書を作成する機能とか辞書のデータ集めに苦労しました。

pypi.org

lxml

スクレイピングする時に利用する機能。XMLやHTML文書をすばやく読めるということでした。

pypi.org

more-itertools

リストを扱う時に利用していました。flattenとかchunkedを利用することが今後もありそうです。

pypi.org

mysql-connector-python-rf

Pythonで書かれたMySQLドライバ。WordPressで利用していたMySQLに接続しようとした時に使ってました。

pypi.org

oauth2client

OAuthを利用する時に使っていましたが、今は We recommend you use google-auth and oauthlib. と書かれているようですね。

pypi.org

pandas

データ分析で利用する機能。の、はずなのですが、スクレイピングしていてどうにもこうにもすごいcssとか無い男気溢れるテーブルタグが出てきた時もpandasが役に立つこともあります・・。

pypi.org

pipenv

パッケージ管理するツール。ココ最近はrequirements.txtであれこれパッケージを書いていたものをPipfileで管理するようになりました。

pypi.org

pytest

テスト用フレームワーク。 試しに使ってみたのですが、まだ入門程度に留まっています。

pypi.org

python-dateutil

日付や時刻を扱う機能。よく使っています。

pypi.org

requests

HTTPライブラリ。APIを叩く時に利用しています。

pypi.org

retry

再実行するデコレータ。スクレイピングなど実行時に稀にエラーになることがあるのでリトライを入れたりしています。

pypi.org

saklient

さくらインターネットAPIライブラリ。サーバの状態を確認したり再起動したりする時に利用しました。

pypi.org

selenium

Seleniumウェブドライバ。スクレイピングする時に利用しています。

pypi.org

slackclient

SlackのAPIをサポートするクライアント。レポート通知とかエラー通知とか色々と使っています。

pypi.org

stringcase

キャメルケース、パスカルケース、ヘビケースなどの文字列の変換するための機能。foo_bar_bazfooBarBazに変えてくれたりします。

pypi.org

xmltodict

xmlをdict型に変更する機能。APIの戻り値がXMLだったりするものがあるのでこれを利用して変換しました。

pypi.org

最後に

色々と書きましたが、もっと良い機能があったら使っていきたいのと、パッケージに機能を追加したくなったりしたらpull requestだしてみようかなと思っています。

また、nodejsでも色々とnpmパッケージを使っているので同じような内容を書いてみようかなとふと思いました。