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

Conda环境卡死?重启大法拯救崩溃主包

事情的起因是这样的:主包在GitHub下载了一个开源项目,并在VSCode中完成了初步的推理测试。当准备进行单步调试时,突然意识到自己是通过解压缩方式而非git命令下载的代码(主包更喜欢这种修改痕迹直观可见的方式)。于是删除了原有代码,改用git方式重新下载。然而再次进入开发环境时,就出现了以下情况:

激活环境时遇到卡死问题,终端无法换行或输入。正常情况下应在第二行显示带括号的环境名(如下图所示),但当前终端始终停留在第一行无法继续操作。

主包不断删除并重建终端试图修复问题,但每次新建终端后都会立即变成以下状态:情况变得有些异常,突然出现了conda-hook.ps1文件,主要程序包对此感到困惑,完全不清楚这个文件的用途。

主包无奈之下只好向AI求助。

AI给出的诊断是:PowerShell正在执行conda-hook.ps1脚本,但conda activate命令未能完整执行 终端当前卡在:

PS D:\Code\DexiNed> (D:\Anaconda3\shell\condabin\conda-hook.ps1) ; (conda activate sketch_gpu_new)

说明:

  • PowerShell profile / conda 初始化异常
  • 或者conda-hook.ps1执行被阻塞
  • 或环境损坏
  • 或 PowerShell 执行策略问题

这是 Windows 下 Conda + PowerShell 很常见的问题。

(1)方法一:

打开:Anaconda Prompt,不要用 PowerShell。

开始菜单搜:

Anaconda Prompt

然后执行:

conda init powershell

正常应该看到:

modified ... ==> For changes to take effect, close and re-open your current shell. <==

然后:完全关闭 VSCode,重新打开。再测试:

conda activate sketch_gpu_new

笑死!主包打开Anaconda Prompt后界面一片空白,一个字都不显示。不过主包心态稳得很,立马开始了第二轮尝试,真有你的!

(2)方法二:检查 PowerShell profile

在 PowerShell 输入:

$PROFILE

通常会得到:

C:\Users\你的用户名\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

打开:

notepad $PROFILE

看看里面是不是有奇怪内容。尤其是:

(& "D:\Anaconda3\shell\condabin\conda-hook.ps1")

如果有重复初始化、乱码、残缺代码。直接:全删掉,保存。然后重新:

conda init powershell

当主包运行命令notepad $PROFILE后出现如下报错:

后面按照AI的指示又断断续续的在 PowerShell中进行尝试,结果还是不行,哈哈哈哈!

(3)第三次尝试:

AI建议在深度学习环境中使用CMD更合适,于是我将VSCode切换至CMD终端,但程序仍然出现了卡死问题!!!

Ctrl + Shift + P

输入:

Terminal: Select Default Profile

选择:

Command Prompt

AI解释说有一种高概率情况:

你的安装路径:

D:\Anaconda3

而 VSCode 自动执行:

D:\Anaconda3\Scripts\activate.bat

实际上:activate.bat 内部调用 conda.bat 时死循环了。

这是 Conda 24+ 在 Windows 的经典问题。

我觉得很有可能,因为我的路径和conda 24.9.2都满足了这两点

(4)第四次尝试:

AI叫我重新安装环境!!!!

哈哈哈哈哈!!!!

我疯了!!!

我最讨厌安装环境了!!

受不了了,主包直接重启!!!

哈哈哈!!!

重启大法好啊!!!重启大法好啊!!!重启大法好啊!!!重启大法好啊!!!

(5)复盘一下:

1️⃣ 核心原因:Shell + 激活残留进程卡死

我之前的表现:

  • PowerShell 卡死,conda activate sketch_gpu_new永远不返回
  • CMD 里尝试激活也卡住
  • 重启之后一切恢复正常

说明:

  • 当时 Windows shell(PowerShell 或 CMD)里可能残留了被挂起的 conda activate 进程
  • activate 脚本内部会修改 PATH、执行 shell hook,如果上一次执行被中断(KeyboardInterrupt 或异常关闭)
  • 下一次激活就可能遇到锁文件 / 环境变量冲突 / PATH 未刷新
  • 这种情况最典型的是在PowerShell + VSCode 终端中出现

2️⃣ 次要原因:PowerShell 用户配置 & OneDrive

  • 我之前尝试conda init powershell卡住
  • 用户 profile 可能半残(不存在或被 OneDrive / Documents 重定向干扰)
  • PowerShell 启动时会自动加载 profile,如果 profile 里调用了 conda-hook.ps1,就会卡住
  • 这种情况在 CMD 不激活 base 时通常没问题,但 VSCode 里默认 PowerShell 就容易复现

3️⃣ 其他潜在因素

  • Conda 24+ 使用 libmamba solver,activate 时会访问环境 metadata,如果之前进程没退出,会锁住环境文件夹
  • 用户环境位于C:\Users\xxx\.conda\envs,虽然不是 OneDrive,但之前半残进程可能锁住某些文件
  • VSCode 自动执行D:\Anaconda3\Scripts\activate.bat+conda activate MC,会重复触发 shell hook,如果残留进程没退出就卡住

4️⃣ 为什么重启后恢复正常

  • 重启会清掉所有挂起的 activate 进程
  • Windows 会重置环境变量、锁文件、shell hook 状态
  • 所以再打开 CMD 或 Anaconda Prompt 就能正常激活环境

✅ 总结

之前卡死的原因可以归纳为:

  1. PowerShell + VSCode shell hook 半残
  2. 上一次 activate 被中断或卡死,残留进程锁住环境
  3. 用户 profile 或 PATH 异常
  4. 环境文件或 activate.bat 被锁

本质上并不是 Conda 或环境本身永久损坏,而是临时进程 / shell 状态导致的卡死


💡经验教训 / 避坑建议

  1. CMD 更稳定,VSCode 默认 CMD 终端(已经改成cmd模式了)
  2. 遇到卡死先 Ctrl+C,关闭终端,必要时重启
  3. 避免在 PowerShell 里乱执行conda init(下次再不乱尝试了)
  4. Conda 环境放在非 OneDrive / 非系统目录,路径简单、无中文空格
  5. 每个项目使用独立 Conda 环境,避免 activate 互相干扰(因为主包不想下载太多的环境安装各种库,怕占内存,所以主包多个项目都使用的同一个环境)
http://www.jsqmd.com/news/823807/

相关文章:

  • Adafruit 2.13英寸四色电子墨水屏驱动与图形显示全攻略
  • 网站3天免输入登录页面编程
  • OpenRGB终极指南:3步告别RGB软件混乱,免费统一控制所有设备灯光
  • 苹果设备iCloud激活锁免费解锁终极指南:iOS 15-16系统快速绕过教程
  • 年均增长9.15%!2024-2031年全球汽车铁芯市场狂飙
  • 用盲水印技术守护你的数字创作:从原理到实战的完整指南
  • 如何彻底解决《恶霸鲁尼》Windows兼容性问题:SilentPatchBully技术架构深度解析
  • Python SciPy实现标准频带FIR滤波器:从原理到实战应用
  • Python零基础如何快速调用大模型API,使用Taotoken实现分钟级接入
  • 3分钟掌握音频频谱分析:Spek免费工具完全指南
  • 国产第二代碳化硅MOSFET如何革新直流充电桩电源设计
  • 告别ICMP被墙!用TCP Traceroute精准探测服务器路径(附Win/Mac/Linux三平台保姆级教程)
  • VR-Reversal:3步实现3D VR视频转2D播放的高效解决方案
  • 基于PyGamer/PyBadge与Arcada库的体感弹跳游戏开发全解析
  • 佛山 CPPM 证书报考常见问题(含金量 / 通过率和费用) - 众智商学院课程中心
  • 对比直接使用官方 API,通过 Taotoken 管理多模型密钥的便利性
  • python电子考场与nacos运行监控
  • 3分钟掌握Layerdivider:智能PSD分层工具的完整指南
  • 用 Servlet 实现商城系统用户登录
  • 南昌考点 SCMP 证书关于(含金量和通过率及费用)详细解读 - 众智商学院课程中心
  • Arduino SAMD/M4开发板Bootloader详解:UF2与BOSSA原理、烧录与排错指南
  • 免缝LED腕带:用导电布胶带轻松入门电子织物制作
  • 基于ESP32与3D打印的48km/h开源遥控赛车全栈开发指南
  • 个人冲刺第一阶段 培训管理子系统——课程管理与培训管理模块典型用户与场景分析
  • FModel终极指南:免费快速提取虚幻引擎游戏资源的完整解决方案
  • 基于 Simulink 的载波移相(PS-SPWM)级联 H 桥(CHB)双向 DC/AC 逆变器实战教程
  • ENS160气体传感器:从MOX原理到物联网空气质量监测实战
  • 论文初稿完成后才是真正的开始
  • 在VS Code中结合Taotoken API快速构建AI代码助手插件
  • 开源GPT-4 API客户端深度解析:架构、实现与生产实践