当前位置: 首页 > news >正文

【问题未解决-寻求帮助】VS Code 中使用 Conda 环境,运行 Python 后 PowerShell 终端输出内容立即消失

【问题未解决】VS Code 中使用 Conda 环境,运行 Python 后 PowerShell 终端输出内容立即消失

  • 问题描述:
    • **系统环境**
    • **复现步骤**
    • **观察到的行为**
    • **已尝试的排查与解决方案(均无效)**
        • **核心线索与疑问**

问题描述:

大家好, 我遇到了一个【在VS Code中使用 Conda 环境,运行 Python文件时,终端输出的内容正常,但是代码运行完后,PowerShell 终端输出内容立即消失,并且回到初始的状态】这个问题:

代码运行未结束时正常输出:
在这里插入图片描述
运行一结束,所有输出内容消失:
在这里插入图片描述
这个问题是在我首次执行 conda init powershell 之后开始出现的。在此之前,一切正常。
在我执行 conda init powershell 之前,每次vscode打开终端输出:

PS D:\coding> 

在我执行 conda init powershell 之后,每次打开终端后会输出:

PS D:\coding> (& D:\ProgramData\anaconda3\shell\condabin\conda-hook.ps1) ; (conda activate py39-cpu-torch)
(py39-cpu-torch) PS D:\coding> 

在这里插入图片描述

  • 问题的关键:最核心的现象是,无论如何设置,VS Code 都会在创建新终端时强制执行 Conda 环境的激活命令。这似乎是 VS Code 的 Python 扩展的一种动态行为,而非来自任何静态配置文件。
  • 对比测试:相反,如果不使用vscode,直接从 Windows 开始菜单打开 PowerShell,其行为正常,不会自动激活 Conda 环境,问题局限于 VS Code 内部。
    (windows打开的powershell就没问题,vscode打开就默认会出现一行 (& D:\ProgramData\anaconda3\shell\condabin\conda-hook.ps1) ; (conda activate py39-cpu-torch) 这个命令
    在这里插入图片描述

经过大量排查仍未解决,希望在此获得帮助。

系统环境

  • 操作系统: Windows
  • IDE: Visual Studio Code (版本: 1.102.2)
  • 集成终端: PowerShell 5.1
  • Python 环境管理: Anaconda (Conda)
  • 当前 Conda 环境: py39-cpu-torch
  • 相关 VS Code 扩展:
    • Python (ms-python.python) - 已安装
    • Python Debugger (ms-python.debugpy) - 已安装
    • Code Runner (formulahendry.code-runner) - 未安装

复现步骤

  1. 在 VS Code 中打开一个项目文件夹。
  2. 确保 VS Code 右下角选择的 Python 解释器是我的 Conda 环境 (py39-cpu-torch)。
  3. 创建一个简单的 Python 文件 test.py,内容为 print("Hello World")
  4. 在文件编辑器中右键单击,选择“在终端中运行 Python 文件”。

观察到的行为

  1. VS Code 打开一个新的集成 PowerShell 终端。
  2. 终端首先自动执行一行命令来激活 Conda 环境:(& D:\ProgramData\anaconda3\shell\condabin\conda-hook.ps1) ; (conda activate py39-cpu-torch)
  3. 命令提示符变为 (py39-cpu-torch) PS D:\coding>
  4. Python 脚本被执行,“Hello World” 被短暂地打印到终端上。
  5. 脚本执行一结束,终端屏幕被完全清空。
  6. 终端最终只留下一行新的命令提示符:(py39-cpu-torch) PS D:\coding>

已尝试的排查与解决方案(均无效)

我已根据常见的解决方案进行了详尽的排查,但问题依旧:

  1. 检查 PowerShell 配置文件 ($PROFILE)

    • 路径为 C:\Users\...\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
    • 使用code $PROFILE 打开的此文件是一个空文件,里面没有任何命令。
  2. 检查 VS Code 用户 settings.json

    • 该文件内不包含 terminal.integrated.profiles.windowsterminal.integrated.shellArgs.windows 这两条命令。其内容如下:
{"Translate-next.defaultEngine": "baidu","Translate-next.targetLanguage": "English","Translate-next.parentLanguage": "Chinese","Translate-next.amazon.accessKey": "","Translate-next.amazon.keyId": "","python.defaultInterpreterPath": "d:\\ProgramData\\anaconda3","Translate-next.baidu.secretKey": "SbxfCqArqXV8roC1WuEQ","Translate-next.baidu.appId": "20250119002256834","hediet.vscode-drawio.resizeImages": null,"editor.wordWrap": "on","remote.SSH.remotePlatform": {"10.26.21.81": "linux"}
}
  1. 检查 VS Code 工作区 .vscode/settings.json
    • 该文件内仅包含与 Python 环境管理相关的默认设置 (python-envs...),没有终端相关的强制配置。
      其内容如下:
{"python-envs.defaultEnvManager": "ms-python.python:conda","python-envs.defaultPackageManager": "ms-python.python:conda","python-envs.pythonProjects": []
}
  1. 调整 Conda 配置
    • 执行 conda config --set auto_activate_base false 以禁止自动激活 base 环境,但问题依旧,因为 VS Code 似乎在强制激活项目指定的 py39-cpu-torch 环境。
(py39-cpu-torch) PS D:\coding> conda config --set auto_activate_base false
  1. 调整 VS Code 终端设置
    • 在设置中取消勾选 Terminal > Integrated: Shell Integration > Enabled
    • 在设置中取消勾选 Python > Terminal: Activate Environment
    • 以上两项操作后,均重启了 VS Code 和终端,问题仍然存在。
      每次打开仍然:
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows加载个人及系统配置文件用了 1664 毫秒。
PS D:\coding> (& D:\ProgramData\anaconda3\shell\condabin\conda-hook.ps1) ; (conda activate py39-cpu-torch)
(py39-cpu-torch) PS D:\coding>

并且点击右上角的三角形(python和python debugger扩展插件 ),仍然是打开一个新的终端,然后运行时有输出,运行后,输出消失

核心线索与疑问
  • 问题的起点:这个问题是在我首次执行 conda init powershell 之后开始出现的。在此之前,一切正常。
  • 问题的关键:最核心的现象是,无论如何设置,VS Code 都会在创建新终端时强制执行 Conda 环境的激活命令。这似乎是 VS Code 的 Python 扩展的一种动态行为,而非来自任何静态配置文件。
  • 对比测试:直接从 Windows 开始菜单打开 PowerShell,其行为正常,不会自动激活 Conda 环境,证明问题局限于 VS Code 内部。

基于以上所有信息,我的问题是:

在排除了所有已知的配置文件和设置选项后,VS Code 或其 Python 扩展中,还有什么机制或隐藏状态,可能会导致它无视所有设置,强制在启动新终端时注入 Conda 的激活命令,并最终引发这个问题?是否有任何缓存或状态文件需要清理?

感谢任何建议或新的排查思路。

http://www.dtcms.com/a/306663.html

相关文章:

  • 《Java 程序设计》第 12 章 - 异常处理
  • T113-i Linux系统完整构建指南:从SDK开箱到内核镜像量产烧录全流程
  • 2025年湖北中级注册安全工程师报考那些事
  • docker 用于将镜像打包为 tar 文件
  • 【MySQL学习|黑马笔记|Day3】多表查询(多表关系、内连接、外连接、自连接、联合查询、子查询),事务(简介、操作、四大体系、并发事务问题、事务隔离级别)
  • 【公有云部署模型】yolo模型公有云部署
  • 用聊天方式聊聊msvcr100.dll丢失的解决方法有哪些?msvcr100.dll是什么
  • 7.pcl滤波(一)
  • Python在Web开发领域的崛起与生态探索:从脚本语言到全栈利器
  • Unity Standard Shader 解析(四)之ForwardAdd(简化版)
  • 机器视觉halcon7-缺陷检测
  • SpringCloud -- MQ高级
  • 关于获取某目录及子目录下所有文件且不包含隐藏文件
  • dify + mcp 实现图片 ocr 识别
  • Apache RocketMQ 的核心概念(Core Concepts)
  • 解决 Node.js 托管 React 静态资源的跨域问题
  • SpringBoot之整合SSM步骤
  • 基因组选择育种-2.3多性状与多组学整合GS-GWAS
  • Python 使用pandas库实现Excel字典码表对照自动化处理
  • 从单体到分布式:解锁架构进化密码
  • MS Access 数据库修复:修复损坏的 MDB 文件的快速指南
  • llama factory本地部署常见问题
  • 大模型的开发应用(二十):AIGC原理
  • 从数据到预测:InfluxDB+Prophet时间序列分析案例实战
  • Promise完全体总结
  • 会吸的簸箕专利拆解:迷你真空组件的吸力控制与吸入口设计原理
  • React 编程式导航
  • 基于 Flask 和 MySQL 的期货数据分析系统
  • 5.Origin2021如何绘制柱状+折线双Y轴图?
  • Gemini CLI 怎么保存会话?两个命令解决 AI 失忆问题