Vscode 调试器导入错误

Vscode debugger importError

我尝试通过 vscode 调试器调试我的远程 django 项目。程序启动时,没有使用我在virtualenv中安装的模块,而是使用了vscode中的模块。我通过打印模块

找到了这个
import completion
print(completion)

#output
<module 'completion' from '/root/.vscode-server/extensions/ms-python.python-2020.1.57204/pythonFiles/completion.pyc'>

但在远程python manage.py shell:

import completion
print(completion)

#output
<module 'completion' from '/{my_python_path}/site-packages/completion/__init__.pyc'>

launch.json 是:

{
    "version": "0.2.0",
    "configurations": [        
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "console": "integratedTerminal",
            "args": [
                "runserver",
                "--noreload",
                "--nothreading"
            ],
            "justMyCode": true,
            "pythonPath": "${config:python.pythonPath}",
            "django": true
        }
    ]
}

我删除了/root/.vscode-server/extensions/ms-python.python-2020.1.57204/pythonFiles/中的completion.py然后程序启动成功...但是它可能会破坏一些功能? 完成模块是做什么用的? 如何从virtualenv导入模块?

这是因为该目录被放在您的 sys.path 上以加载调试器。请随时在 https://github.com/microsoft/vscode-python 上提出一个错误以考虑重命名文件,这样就可以减少与您自己的文件之一发生冲突的可能性。