【问题解决】| 关于vscode调试python文件 报错 且直接运行正常的诡异情况记录

关于python的debug报错,其实很奇怪

首先,对于工作区代码,我们可以通过Ctrl+Shift+P 来切换Python解释器

这样的话,工作区的代码就不会报import error

而且这样的话是可以运行跑通的,但最抽象的一集来了,这时候运行debug,这时候你会发现竟然会报错,

我一开始以为是没有切换虚拟环境的问题,导致无法找到包,因为他的这个前面的(base)并没有切换到我的代码的环境

但是我发现,他实际上是会调用我们前面工作区切换好的解释器的,说明他也在运行切换了环境

这段代码的实际意义是

这段命令是在Windows操作系统的命令提示符(CMD)中执行的,它启动了一个Python脚本。下面是对这段命令的逐部分解释:
​
(base) PS C:\Users\Qodi\Desktop\test_debug>:这是命令提示符的当前状态,显示当前目录是C:\Users\Qodi\Desktop\test_debug,并且当前激活的Python环境是base。
​
&:这是一个命令行操作符,用于在Windows中执行一个命令,并且不等待该命令执行完成就继续执行后面的命令。在这个上下文中,它可能用于确保即使调试器启动失败,也不会阻止其他命令的执行。
​
'f:\anaconda\envs\deepLearning\python.exe':这是指定的Python解释器的路径。这里使用的是Anaconda环境中的Python解释器,位于F:驱动器的anaconda/envs/deepLearning目录下。
​
'c:\Users\Qodi\.vscode\extensions\ms-python.debugpy-2024.0.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher':这是Visual Studio Code(VSCode)的Python扩展使用的调试器启动器的路径。这个启动器用于启动调试会话。
​
'64428':这通常是一个端口号,用于调试器监听和接受来自VSCode的调试连接。
​
--:这个双破折号通常用于分隔命令行参数,告诉调试器启动器后面的参数是传递给Python脚本的。
​
'c:\Users\Qodi\Desktop\test_debug\try.py':这是要调试的Python脚本的路径。

后来我实验究竟是什么导致报错,我发现我忽略了错误本身,我以为是import的问题

后来往往发现报错是如下的:这个错上网搜索是因为numpy版本的问题

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
​
Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

关键是这个报错是numpy包相关的,而最抽象的是我在import torch

所以我降低了numpy包版本(按照网上的版本,我的numpy包版本和其他包冲突,所以又升高了一下)发现忽然可以调试了

综上,无法正常调试还是包的依赖问题

而且也并不需要在终端激活那个环境,这是目前的实验证明

但还是很玄学,还是没有理解透彻,后面遇到问题再补充吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/519883.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排序——堆排序

本节继续复习排序算法。这次复习排序算法中的堆排序。 堆排序属于选择排序。 目录 什么是堆? 堆排序 堆排序的思想 堆排代码 向下调整算法 堆排整体 什么是堆? 在复习堆排序之前, 首先我们需要回顾一下什么是堆 。 堆的本质其实是一个数…

Linux文件描述符剖析

文章目录 文件描述符文件描述符分配规则重定向软硬链接软链接(Symbolic Link):硬链接(Hard Link): 文件描述符 文件描述符(File Descriptor)是一个非负整数,用于标识打开…

智能控制:物联网智能插座对接文档

介绍 一开始买的某米的插座,但是好像接口不开放,所以找到了这个插座,然后自己开发了下,用接口控制插座开关。wifi的连接方式,通电后一般几秒后就会连接上wifi,这个时候通过接口发送命令给他。 产品图片 通…

C++11线程同步之条件变量

C11线程同步之条件变量 condition_variable成员函数生产者和消费者模型 condition_variable_any成员函数生产者和消费者模型 条件变量是C11提供的另外一种用于 等待的同步机制,它能阻塞一个或多个线程,直到收到另外一个线程发出的通知或者超时时&#x…

ROS 2基础概念#5:执行器(Executor)| ROS 2学习笔记

在ROS 2中,Executor是一个核心概念,负责管理节点(Node)中的回调函数,如订阅消息的回调、服务请求的回调、定时器回调等。Executor决定了何时以及如何执行这些回调,从而在ROS 2系统中实现异步编程。 ROS 2 …

vscode自定义插件的开发过程记录

前言 本文是关于visual studio code软件上自定义插件的开发记录,将从头记录本人开发的过程,虽然网上也有很多文章,但个人在实践的过程还是会遇到不一样的问题,所以记录下来,以便于后期参考。 前期准备: 1、…

STL之list容器代码详解

1 基础概念 功能: 将数据进行链式存储 链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成:链表由一系列结点组成。 结点的组成:一个是存储数…

嵌入式学习第二十五天!(网络的概念、UDP编程)

网络: 可以用来:数据传输、数据共享 1. 网络协议模型: 1. OSI协议模型: 应用层实际收发的数据表示层发送的数据是否加密会话层是否建立会话连接传输层数据传输的方式(数据包,流式)网络层数据的…

HelpLook VS GitBook:知识库优劣详解

在信息爆炸的时代,企业要保持竞争优势,就必须善于管理和利用内部的知识资产。企业知识库作为一种集中存储和共享知识的工具,正在成为现代企业不可或缺的一部分。 HelpLook和Gitbook是提供专业知识库的两个平台,也被大众熟知。它们…

一文读懂HDMI的演变-从HDMI1.0到HDMI2.1(建议收藏)

HDMI,全称为(High Definition Multimedia Interface)高清多媒体接口,主要用于传输高清音视频信号。 HDMI System HDMI系统包括HDMI的source和HDMI的sink, 其中source 是源端,即信号的来源;Sink的接收端&a…

什么是以人为本的AI?

AI技术蓬勃发展,有望极大改善我们的日常生活。因此,人工智能专家经常围绕在我们社会中利用人工智能的最佳方式展开对话,并由此得出了以人为中心的AI方法。以人为中心的AI意为不是用机器代替人类,而是用机器来优化人类的体验。 在…

乌鸡的身高

解法&#xff1a; 只需要看身高最高的乌鸡个数是否>2.若满足则除去当前这只乌鸡的最高身高都是最高身高。 若不满足则只需要看最高的和第二高的乌鸡。 #include<iostream> #include<vector> #include<algorithm> #include<cmath> using namespac…