Python 2.7 VS代码调试总是在Python中的内部模块上产生错误

Python 2.7 VS代码调试总是在Python中的内部模块上产生错误,python-2.7,visual-studio-code,visual-studio-debugging,vscode-settings,Python 2.7,Visual Studio Code,Visual Studio Debugging,Vscode Settings,我回答了自己的问题,请参阅下面的解决方案。把这一切留给子孙后代,因为我做了很多别人说过会为他们工作的事,也曾为他们工作过,但没有一件是有效的 问题 下面是一个非常简单的python文件。当尝试在此文件上使用Visual Studio代码的调试器时,我总是在任何内部模块上获得一个ImportError,例如app.models或app.tests.scripts.stubs。如果这些模块列在下面faker或任何其他外部模块中,则调试器将通过该外部模块而不会抛出错误,但会在app.models或首先

我回答了自己的问题,请参阅下面的解决方案。把这一切留给子孙后代,因为我做了很多别人说过会为他们工作的事,也曾为他们工作过,但没有一件是有效的

问题 下面是一个非常简单的python文件。当尝试在此文件上使用Visual Studio代码的调试器时,我总是在任何内部模块上获得一个ImportError,例如app.modelsapp.tests.scripts.stubs。如果这些模块列在下面
faker
或任何其他外部模块中,则调试器将通过该外部模块而不会抛出错误,但会在
app.models
或首先列出的任何内部模块上抛出错误。这在我尝试过的8-10个文件中是正确的

我试过的 我已经在launch.json和用户设置中指定了确切的pythonPath,如下所示。我添加了
“例外处理”
以忽略导入程序。我已经卸载并重新安装了Don Jayamanne优秀的Python扩展。我已经运行了
Python:selectworkspace解释器
,并将其指向
/.venv/bin/python2.7
/.venv/bin/python2
,以及“`./.venv/bin/python2”

文件夹 launch.json Python配置 Python文件 解决方案 在浏览我所做的一切的同时,为了发布这个问题,我尝试将路径
程序
“${file}”
更改为它的绝对路径。这使得调试器能够在导入之外无错误地执行。然后我遇到了一个问题,因为我不在任何环境中,所以我在我的机器上输入了一个
dev
环境,尽管我不需要在VSCode中更改任何其他内容。然而,我现在遇到了一个未经验证的断点问题,我正在寻找这个问题。我一弄清楚就会更新

我试图解决的未经验证的断点问题 我将
“program”
改回
“${file}”
,调试工作完全按照预期进行,断点在这样一个超级简单的文件上工作

import sys
print(sys.version)
print(sys.executable)

然而,尽管在
launch.json
中指定了
“exceptionHandling”
,但这会导致在一个更复杂的文件上再次出现
导入错误

感谢分享您对此问题的解决方案。由于此问题已解决,请将其标记为答案,以便帮助其他社区成员解决相同问题。@Jackzai MSFT感谢您的提醒。为了接受我的答案,我改投了更高的票,它给了我一个警告,所以我继续前进。我只是正确地接受了我的答案。
from app.models import Kelly
import app.tests.scripts.stubs
from faker import Faker
import factory
from datetime import datetime
from bson.objectid import ObjectId

fake = Faker()

kelly_names = [REDACTED]


class KellyFactory(factory.Factory):
    class Meta:
        model = Kelly
    id = ObjectId()
    is_archived = False
    email = factory.LazyAttribute(
        lambda kel: '%s@email.com' % kel.name.split()[0])
    name = fake.word(ext_word_list=kelly_names)
    phone = fake.phone_number()
    date_last_modified = datetime.now()


kelly = KellyFactory()
import sys
print(sys.version)
print(sys.executable)