1 问题描述
我在vscode下面编写python程序,这个程序是在一个英伟达anoconda环境下的项目。之前能运行能调试,最近发现只能运行ctl+f5,但是使用f5进行调试时,报错“File “c:\Users\86137.vscode\extensions\ms-python.debugpy-2024.12.0-win32-x64\bundled\libs\debugpy\adapter/…/…\debugpy\launcher/…/…\debugpy/…\debugpy_vendored_init_.py”, line 126, in preimport
import_module(name)
File “C:\Users\86137\Anaconda3\envs\Pytorch\lib\importlib_init_.py”, line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “c:\Users\86137.vscode\extensions\ms-python.debugpy-2024.12.0-win32-x64\bundled\libs\debugpy_vendored\pydevd\pydevd.py”, line 228, in
from _pydevd_bundle.pydevd_plugin_utils import PluginManager
File “c:\Users\86137.vscode\extensions\ms-python.debugpy-2024.12.0-win32-x64\bundled\libs\debugpy_vendored\pydevd_pydevd_bundle\pydevd_plugin_utils.py”, line 4, in
from typing import Tuple, Literal
ImportError: cannot import name ‘Literal’ from ‘typing’ (C:\Users\86137\Anaconda3\envs\Pytorch\lib\typing.py)”,
2 问题定位说明
因为你的Python环境与VS Code使用的调试工具之间存在兼容性问题,特别是当涉及到不同版本的typing模块时。从错误信息来看,Literal是从Python 3.8开始引入的一个类型提示,而你的环境可能正在使用一个较旧的Python版本,或者由于某些原因导致typing模块未能正确加载。
之前可以,我用的python是3.7.13,而vscode在使用vscode时候有过升级,升级了vscode下面的版本,主要与两个vscode中的两个插件有关,python和python Debugger。这两个插件版本不兼容。
3 问题解决
可以方法1,方法2混用,也可以单独试试。
方法1:降级vscode中的python插件
将vscode下面的插件,python降级到之前的一个兼容版本。降级方法:
之后,自动弹出下面的框和下拉的历史版本:
从历史版本中选择一个版本,之后会自动的安装这个版本。
另外一个选择降级的地方在这里:
同时,为了防止其自动升级,需要在这里禁止掉:
方法2:禁止vscode中的python debugger插件
操作见下图。