You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
基本的な使い方 基本的には以下のように使う。 #!/usr/bin/env python # -*- coding: utf-8 -*- import logging if __name__ == '__main__': logging.basicConfig() logging.debug('this is debug message') logging.info('this is info message') logging.warning('this is warning message') logging.error('this is error message') logging.critical('this is critical message') 実行結果は以下。 WARNING:root:this is warning message ERROR:root:this is
目次 概要 動作環境 紹介するPythonライブラリ flake8 pyformat isort mypy bpython ipdb 最後に 概要 仕事でよくつかうパッケージからプライベートで開発するときに、必ずインストールしているパッケージをまとめて紹介してみた。 データサイエンス系の人はJupyterを使うと思うのでWeb開発向きだと思います。 DjangoなどWebフレームワークを使うときは便利な専用のパッケージもありますが本記事には記載してないです。 パッケージ管理はPipenvやpoetryなど有名なものがあるがこの記事では書いてないです。 動作環境 筆者の動作環境。 環境に依存したパッケージはないはずだが念の為。 MacOS Python 3.8.0 anyenv 1.1.1 pyenv 1.2.15-1-g49bf5952 紹介するPythonパッケージ flake8 プロジ
はじめに pythonのloggingモジュールで出力されるログの表現を変えようという話。おおまかに3つ方法がある デフォルトでサポートしている範囲で付加的なログ出力 ログ出力を渡す際に付加的な情報を渡してログ出力 全てのログ出力に特定の情報を付加してログ出力 デフォルトでサポートしている範囲で付加的なログ出力 何も設定しない場合の出力 pythonのloggingモジュールではフォーマットを変更する事によって、出力の表現を変える事ができる。 import logging logger = logging.getLogger(__name__) logging.basicConfig(level=logging.DEBUG) logger.info("hello") logger.info("bye")
Hacker NewsとRedditでバズっていたPythonのデバッグツールが便利だったので紹介です! PySnooperというライブラリです。 Hacker News - PySnooper: Never use print for debugging again Reddit - PySnooper: Never use print for debugging again ※追記 想像以上にたくさんの方に読んでいただき、printデバッグなど他のデバッグ方法との比較について追記として文末に補足しました。釣りタイトルですみませんでした…🙇 何ができるライブラリか 一言で言うと「デバッグがめちゃくちゃ簡単にできるライブラリ」です。 github.com 例を見たほうがわかりやすいと思うので見てみましょう。 インストールは pip で行えます。 pip install pysnooper
Python を初めて間もない頃、自分も print デバッグしてました。効率の悪さを認識しつつも、IDEを導入してデバッグする方法を調べてセッティングして、という手順が面倒でずっと放置してました。 // 普段は vim で開発してます そうこうしてたら print デバッグではどうにもならないバグにぶち当たり、仕方なくデバッグポイントを置く方法を調べたわけです。するとどうでしょう。 ソースコード中に以下の一文を入れるだけではないですか。 import pdb; pdb.set_trace() たったこれだけで、上の一文を挿入した行で処理が停止し、コンソール上でステップ実行が出来るようになります。最高かよ。 個人的にですが、デバッガー起動中によく使うコマンドとしては以下です。 コマンド 説明 s(tep) ステップイン n(ext) ステップオーバー r(eturn) ステップアウト l(
今回は、iXce’s blog » Blog Archive » Optimizing memory usage in Python: a case study という記事を見つけて興味深かったので紹介したいと思います。何も説明書いてないところがあるので、詳しく知りたい人は元記事を読んでほしいです。 動機 プレーンテキストをGコードに変換するプログラムを書いている 3.8MB (14万Gコード) のファイルを読み込むと、244MBもメモリを使ってしまう だからメモリ使用量を減らしたい やったこと プロファイル どこがメモリをたくさん使ってるのか調べるためにHeapyを使う $ pip install guppy で入れられる。 するとこんな感じの結果が出力される。 Partition of a set of 225737 objects. Total size = 115386656 by
はじめに 今までテストを書くどころかデバッガを使ったことがなかったのですが、id:Kesinさんの↓の記事を読んで、このままではマズイと思ったので勉強しました。 研究のプログラミングにおける悲劇を無くすためのGitとテスト デバッガ Pythonには標準でpdbというデバッガが付いてるらしい。 pdb — Python デバッガ Pythonのpdbモジュールでデバッグする こちらによると、 使い方はいろいろあるみたいだけど、とりあえず set_trace は便利なのですぐにでも使ってみるべき。pdb.set_trace() でデバッグ用の対話シェルが実行される。 とのこと。他のサイトでもプログラムの気になる所にpdb.set_trace()を埋め込んで使っていました。 import pdb pdb.set_trace() 使い方 PyCon JP 2012 hands-on セッション/
Python のデバッガといえば言語そのものに付属している pdb がまず挙げられるけど、pdb は実行中の行以外を確認できなくて正直かなり使いづらさを感じる。 それ以外の Python のデバッガとしては、以前にこのブログでも winpdb を紹介しているし、それ以外だと Eclipse PyDev プラグインの GUI デバッガをよく使っている。 とはいえ、これら二つは動作に X Window System が必要だったり、プラットフォームとして Eclipse や wxPython をインストールしなきゃいけないのが結構手間になる。 今回紹介する PudB は動作に特別なプラットフォームが不要でなおかつ pdb より便利な CUI のデバッガだ。 インストールはいつも通り PyPI から PIP で。 必要に応じて sudo などする。 $ pip install pudb 使い方は
はじめに Djangoでメモリに乗らないサイズのデータベースを扱うときに、気をつけるべきポイントをまとめます。メモリを大量に消費していつまで経っても処理が終わらなかったり、OOM Killerに殺されたりといった悲しい結末を回避できたら幸いです。 データ量としては、レコード数が数十万から数百万ぐらいで、サイズにして数GB〜十数GBぐらいのイメージです。インデックスを適切に張るといった、Django特有でないポイントは取り上げません。Djangoのバージョンは1.5系を対象にしています。 バッチ処理のDEBUGに気をつける 症状 DEBUG = Trueの場合、バッチ処理で大量のクエリを発行するとメモリを食いつぶすことがあります。 原因 実行したすべてのSQLが記録されるためです。defaultのデータベースを利用している場合は、django.db.connections['default
Djangoアプリケーションを開発する際のデバッグ方法について紹介します。 標準のDebugモード以外に使える様々なサードパーティライブラリを中心に、 私が趣味/仕事でのDjangoアプリケーションを開発する通して学んだデバッグ方法を具体的に紹介します。 アプリケーション開発時の泥沼のデバッグ作業は誰しも避けたいものです。 その時間はたいてい無駄になりますし、開発者自身つらいものがありますね。 優秀なツール使い、その負担を軽減しましょう。 適切なロギングで、発生した問題に素早く対処できるようにしましょう。 このセッションでは少しでも開発の助けになるよう、 Djangoアプリケーションのデバッグ方法を紹介します。Read less
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー pudbは,CUI環境(つまりシェル)で動くGUIライクなデバッガ。Pythonには標準でpdbというデバッガがついてくるけど,コマンドラインベースでちょっと使い方が面倒だよね。pudbはpdbよりノリがいい。まあスクリーンショットを見てもらうのが早いかな。 CUIベースでGUIっぽいことをするというのは,レトロなノリだよなあ。でもCUIベースならシェルが動く環境ならどこでも動く,という利点もある。ローカルのPythonでもssh越しのPythonでも,シェル上なら同じように動くというのは嬉しい。 インストールは簡単。いつものごとくeasy_installを使って「$ easy_ins
wdbはPython製のWSGI用のWebベースデバッガーです。 スクリプト言語の開発のが個人的には手軽ですが、IDEを使ったコンパイル系言語の開発において羨ましいと感じるのがブレークポイントを含めたデバッガー機能です。そんなデバッグ機能をWSGIを使った開発に用いられるのがwdbです。 アクセスするとデバッガーが立ち上がります。 ステップ実行、コンソールでの出力ができます。 別なライブラリへ遷移します。 最後は結果が出力されて完了です。 wdbを実行すると、1984番ポートでWebサーバが立ち上がります。そして/wtfにアクセスするとwdb.set_trace()を実行した次の行からステップ実行が可能になります。最後までいくと画面に結果のHTMLが出力されて完了となります。変数の内容を見たり、ステップ実行もできるようになり、より開発がスムーズになりそうです。 wdbはPython製、GP
スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く