2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCodeで現在のファイルをデバックする: Python

Last updated at Posted at 2024-05-21

目的

VSCodeのデバッグ機能を使用して、現在開いているファイルをデバッグしたい。

つまづきポイント

sys.pathがディレクトリ全体ではなく、そのmoduleが存在するパスしか読み込みません。なので、自作moduleをインポートする場合importエラーが出ます。

例えば、以下のようなディレクトリ構造で、retriever.pyからutils.normalize_text.pyをインポートするとエラーなります。

├── keyword_retriever
│   └── retriever.py
├── utils
│   └── normalize_text.py
from utils.normalize_text import normalize_documents 

importエラーが発生

例外が発生しました: ModuleNotFoundError
No module named 'utils'
  File "/usr/src/app/keyword_retriever/retriever.py", line 28, in <module>
    from utils.normalize_text import normalize_documents
ModuleNotFoundError: No module named 'utils'

解決策

launch.jsonに以下を追加する

{
  "name": "Python デバッガー: 現在のファイル",
  "type": "debugpy",
  "request": "launch",
  "program": "${file}",
  "console": "integratedTerminal",
  "cwd": "${workspaceFolder}",
  "justMyCode": true,
  "env": {
    "PYTHONPATH":"${PYTHONPATH}:${workspaceFolder}", // 追加
  }
},

PYTHONPATHに現在のプロジェクトディレクトリを指定することで、sys.pathがmodeleを読み込むようになります。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?