プロジェクトがあり、main.py
をデバッグしようとしています。デバッガーを実行しているときに、ファイルの先頭にあるインポートから次のエラーが発生する理由(のみ)が本当に混乱しています。
Exception has occurred: ModuleNotFoundError
No module named 'bbb'
File "/Users/maxepstein/myproject/bbb/train/__main__.py", line 8, in <module>
from bbb.mysubfolder.myfile import myfunction
これらのprintステートメント(デバッガーによって示される)によって示されるように、私のプロジェクトフォルダー構造は、私の 'bbb'モジュールが存在することを確認し、__init__。pyを持っています:
import os
print(os.getcwd())
print(os.listdir())
print(os.listdir('bbb'))
/Users/maxepstein/myproject
['requirements.txt', 'bbb', 'resources', '__init__.py', 'readme.md', 'results', '.gitignore', '.git', '.vscode', 'bbenv']
['config', 'tests', '__init__.py', 'utils', 'predict', 'train']
「debugcurrentfile-integratedterminal」としてデバッグしようとしています。以下は私のdebugsettings.jsonからの該当するデバッグ設定です。オンラインで検索した後、以下に"cwd": "/Users/maxepstein/myproject"
を追加することが私の解決策になると本当に思いましたが、それは役に立ちませんでした。
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File (Integrated Terminal)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"cwd": "/Users/maxepstein/myproject"
}
どんな助けや洞察も大歓迎です。
VSCodeでPythonモジュールをデバッグしているときは、現在のファイルの代わりにモジュールデバッグ構成を使用します。次のようになります。
{
"name" : "Python: Module",
"type" : "python",
"request": "launch",
"module": "bbb",
"args": []
}
ドキュメントを参照してください https://code.visualstudio.com/docs/python/debugging
また、VS Codeでは、次の手順で次の設定が自動入力されます。
デバッグ->構成の追加-> Python:モジュール
ネストされたディレクトリからインポートする場合にも同じ問題があり、環境変数PYTHONPATHに追加することで修正しました。
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"cwd": "${workspaceFolder}",
"env": {
"PYTHONPATH":"${PYTHONPATH}:/home/maxepstein/myproject/"
}
}
]
}
現在のファイルデバッグ構成を使用できます。モジュールをインポートするデバッグ中のファイルで、インポートしようとしているモジュールへのフルパスをシステムパスに追加します。
sys.path.append('/Users/my_repos/hw/assignment')
import src.network as network
ここでのモジュールはsrc
で、assignment
ディレクトリにあります。