No support for per-subpackage launch.json + in monorepo: debugger breaks imports that terminal run resolves
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
調査の方向性
まず、提供された monorepo のレイアウトと launch.json を再現し、次に cwd と PYTHONPATH を含めて、ターミナルと F5 のサブプロセス環境を比較します。起動時の debugpy による環境とパスの処理を追跡します。ユーザーパスが保持されるか、上書きされた変数が正確に文書化され、提供されたモジュールの起動が失敗しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Environment
- OS: Windows 11 Enterprise
- VS Code: 1.104.x
- debugpy: latest (1.8.x)
- Python: 3.11
- Repo layout: monorepo with
src/layout; each sub-package atpackages/<name>/src/<name>/ - Shell: PowerShell
Problem
In a monorepo with a src/ layout, running python -m packages.api.main from the workspace root works in a terminal (with PYTHONPATH=packages/api/src). But when launching the same target via VS Code's debugger ("module": "packages.api.main" in launch.json), debugpy prepends its own path manipulation that:
- Overrides
PYTHONPATHin the subprocess environment. - Sets
cwdto the workspace root unless explicitly overridden. - Does NOT pick up per-folder
python.defaultInterpreterPathor env activation from a subfolder.vscode/settings.json.
Result: imports that resolve in a terminal fail in the debugger with ModuleNotFoundError, because debugpy's path injection shadows the manually set PYTHONPATH.
Steps to Reproduce
- Monorepo:
C:\D\workspace\packages\api\src\api\__init__.py launch.json:{ "type": "python", "module": "api.main", "cwd": "${workspaceFolder}/packages/api", "env": { "PYTHONPATH": "${workspaceFolder}/packages/api/src" } }- Terminal run:
cd packages/api && python -m api.main— works. - F5 debug:
ModuleNotFoundError: No module named 'api'.
Expected
- debugpy should merge the user-specified
env.PYTHONPATHwith (not replace) its own injected paths. - Or: document precisely which env vars debugpy overwrites so
launch.jsonauthors can compensate.
Related
- #2002 (nested subprocess module resolution) — same root cause, different trigger path
- 主要言語
- Python
- スター
- 2.5k
- フォーク
- 205
- 平均マージ
- 1日 9時間
- マージ済み PR(30日)
- 3
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
microsoft/debugpy のほかの issue
-
pydevd_comm.py start_client() does not set TCP_NODELAY on the connections it opens対応中かも @nightcityblade が 50 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
Document "rules"-option対応中かも @nightcityblade が 38 日前に担当しました。 オープンdocumentation
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
wx.EventLoop() deprecation warning対応中かも @nightcityblade が 37 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
debugpy.configure(python=) is not properly documented対応中かも @nightcityblade が 48 日前に担当しました。 オープンdocumentation
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
-
Adapter bootstrap fails with ConnectionRefusedError on WSL2 VirtioProxy or hostAddressLoopback対応中かも @nightcityblade が 4 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
microsoft/debugpy の issue をすべて見る
似ている issue
-
json_params_matcher fails on falsy top-level JSON primitives (0, False, "")対応中かも @mayureshsonawane17 が今日担当しました。 オープンWaiting for: Product Owner
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 5 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
bojieli/ai-agent-book#1169 ·
メンテナーはふだん 1 日以内に返信
-
priority:low ready-for-dev
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
OpenHands/extensions#738 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
micronaut-projects/micronaut-core#13677 ·
メンテナーはふだん 1 日以内に返信