質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

484閲覧

Python 今の自分に合ったデバッグ方法を見つけたい。

Lim-Nic

総合スコア18

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/07/25 01:23

前提・実現したいこと

今作成しているプログラムと、デバッグの方法が合わず他に方法が無いか調べています。

使用しているツール

・言語
Python 3.7
・エディター
Spyder 3.3.4

現状と発生している問題

これまでは、1つのファイルにプログラムを記述して上から下まで実行する方法で行っていたので、
搭載されているデバッグ機能や気になる変数部分をprint()で出力して確認を取っていました。

最近、SNSを作成していますが複数のファイルを行き来しながら動いているため
その1つのファイル内でデバッグをしてもすぐにエラーで止まってしまいます。(Spyder搭載のデバッグ)
print()で気になる部分を出力するとしても、問題部分を見つけるのが難しいです。
デバッグについて調べてみて、import pdb;pdb.set_trace() を使った方法も試してみましたが
この場合自分が記述したプログラムファイル以外(後ろで動いている根本的なプログラムファイル?)の動作も表示され、詳しすぎて逆に解らない状態です。

質問

皆さんがプロラグミングする際に使っているデバッグ方法を教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

VisualStudioにPythonのユニット入れると、ソースコードデバッグできるようになりますが、そゆのではどうでしょう

投稿2019/07/25 06:15

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lim-Nic

2019/07/25 06:54

回答ありがとうございます。 すみません。初歩的なことで申し訳ないですが ユニットとは例えば Views.pyModels.py など1つのファイルということで合っていますか? SNSサイトが軸にある状態で、送信ボタンが押されたらメッセージを取得する、画像データを読み取る、データベースとやり取りする、メインページのhtmlに結果を埋め込む などの動作のうち どこで何の失敗しているのかというのは分かるものなのでしょうか? もしかしたら私の求めすぎかもしれないと思い始めてきていますが、今後必要なこともあると思うので 一度試してみます。
y_waiwai

2019/07/25 07:01

VisualStudioのインストール時にPython周りの環境を入れるかどうかの選択肢が出てきます それを入れると、pythonや、それを使ったWebプロジェクトやらの選択肢が出てきますね
Lim-Nic

2019/07/25 07:26

調べてみたところ、VsisualStudioでDjangoを使ったWebアプリケーションを作っている方もいたので やってみる価値はありそうです。 実際に動作を確認するまで少し時間が掛かるかもしれませんが、やってみます。 ありがとうございます。
Lim-Nic

2019/07/29 00:37

VisualStudioを試してみたところ、デバッグの表示が分かりやすく理想的でした。 Webページ動作ごとのプログラムの関係性やオブジェクト指向的な動きがまだ理解できていなかったので プログラムファイルを超えて動作場所を表示してくれるところがとても分かりやすかったです。 また、デバッグモードがIE・Chromeなどブラウザの選択ができることも素晴らしいです。
guest

0

プログラムが大きくなった場合は、ユニットテスト(単体テスト)を実施するのが一般的です。

Python の標準ライブラリにもユニットテスト用のモジュール「unittest」があります。

投稿2019/07/25 01:47

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lim-Nic

2019/07/25 04:27

回答ありがとうございます。 unittest調べてみました。紹介されていたケースをいくつか試してみましたが 出力が分かっていて、同じ結果が求められているか確認するためにある。というイメージでしょうか。 今回作成しているsnsでは、ページ間の移動やページの表示などもテスト動作のひとつだと思いますが これらをunittestでテストする方法がイメージ出来ていない状態です。 実際にsnsを起動してWeb上で動作させて確認する方法が良いのでしょうか。
nskydiving

2019/07/25 07:20

>出力が分かっていて、同じ結果が求められているか確認するためにある。というイメージでしょうか。 そのイメージで良いと思います。 ページ間の移動やのページの表示をテストするには「Selenium」というツールを使うと便利です。 Python にも Selenium を使うためのモジュール「selenium」が用意されています。
Lim-Nic

2019/07/29 00:27

Seleniumモジュールは何度か使ったことがありますが テストツールとしては使ったことが無かったので、参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問