我有一个项目,并试图调试我的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']
我试着调试为“调试当前文件-集成终端”,下面是我的debug settings.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"
}
7条答案
按热度按时间emeijp431#
@BrettCannon提到的错误的一个简单解决方案是将以下
env
条目添加到launch.json
配置中:2q5ifsrm2#
从嵌套目录导入时出现相同的问题,通过将其附加到env变量PYTHONPATH中修复了该问题:
avwztpqn3#
当我在VS代码中调试Python模块时,我使用Module调试配置,而不是Current File调试配置。
参见文档https://code.visualstudio.com/docs/python/debugging
此外,在VS代码中,这些步骤将为您自动填充这些设置:
调试-〉添加配置-〉Python:模块
voase2hg4#
在我的例子中,我选择了正确的解释器,很快就修复了它:
cgvd09ve5#
您可以使用当前文件调试配置。在导入模块的调试文件中,将您试图导入的模块的完整路径添加到系统路径中。
这里的模块是
src
,位于assignment
目录中。fv2wmkja6#
我从VS代码运行调试器。我在VS代码中的结构:
拯救了我的launch.json:
pokxtpni7#
根据其他答案,我必须将launch.json更改为以下内容,以便能够成功调试我在项目中编写的任意python模块(通过点击
F5
,将.py
文件作为VSCode的活动文件开始调试),否则,当文件试图从不同的自定义模块导入时,我会遇到相同的"ModuleNotFoundError"
。操作系统= Ubuntu 20.04(WSL 2)
附注
~
代替/home/user/
也被拒绝了例如,如果我尝试调试的文件是
<repo-root>/src/data/process.py
,那么"${relativeFileDirname}"
会得到src/data
,而"${fileBasename}"
会添加特定的模块process.py
希望这对某人有帮助。我试过很多其他的组合,但这是唯一一个最终起作用的。