ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Anaconda开始菜单快捷方式丢失?mkmenus报错修复全攻略

2026/9/7 20:39:40 拓冰建站 浏览量
Anaconda开始菜单快捷方式丢失?mkmenus报错修复全攻略 修复Anaconda开始菜单快捷方式丢失及mkmenus报错ERROR: did not expect mkmenus先说结论Anaconda开始菜单快捷方式整体消失这在Windows上实在太常见了但99%的情况Anaconda本身并没有坏环境和包都还好好躺在安装目录里只是那几条.lnk入口丢了而已。真正让人头疼的是很多人照着网上的教程去找mkmenus这个工具结果命令一敲终端直接甩出一句ERROR: did not expect mkmenus当场人就懵了。这篇文章会先把快捷方式消失的原因和mkmenus报错的真正机制讲透再给出五条我实测过且有效的修复路径从最快的重跑安装程序到完全手搓快捷方式都覆盖到。无论你的Anaconda是什么版本也无论快捷方式是整个消失还是只剩残缺入口都能在里面找到直接能用的方案。1. 快捷方式消失究竟发生了什么1.1 最常见的五种翻车场景快捷方式不会凭空消失大多数时候是下面某一种原因造成的第一个是Windows系统更新。Windows 10和11在功能更新阶段偶尔会把第三方程序生成的开始菜单项当成“无效数据”清理掉尤其是那些指向目录已经不存在或者路径带特殊字符的快捷方式最容易中招。Anaconda默认装到C:\Users\用户名\Anaconda3路径本身没毛病但如果更新时系统临时用户配置文件有问题开始菜单项就容易被误伤。第二个是Anaconda自身升级或修复不完整。用Anaconda安装器做升级时如果中途断电、被杀毒软件拦截、或者上一次卸载残留没清理干净开始菜单项很可能不会被重建。我遇到过最离谱的一次是升级到一半Windows安全中心突然弹出警告说Anaconda在修改系统目录然后我点了阻止结果升级流程直接中断接下来开始菜单里Anaconda的文件夹就消失了。第三个是手动移动安装目录。很多人嫌Anaconda默认装在C盘太占空间于是直接剪切整个文件夹到D盘。移动之后原快捷方式的目标路径已经失效Windows会在用户登录时清扫这些失效入口。这也是快捷方式变成“指向空路径”或者干脆消失的典型原因。第四个是清理类软件误删。CCleaner、360、腾讯电脑管家这类工具默认会清理“无效或失效的开始菜单快捷方式”。Anaconda的快捷方式如果被它判定为失效就会在扫描后被自动清掉。哪怕只是误判你也很难找回已经被删的.lnk文件除非提前做了备份。第五个就比较简单了——自己手滑。Windows 11的开始菜单支持直接右键卸载应用和删除快捷方式有些人不小心碰到可能连提示都没看清楚就点了删除。这种情况下Anaconda本体一点没受影响只是入口没了。这里要特别强调一句不管上述哪种情况只要安装目录里的python.exe和conda.exe还在你的环境和包就没有任何损失。千万别急着卸载重装那是把问题扩大化。1.2 开始菜单里到底应该有什么Anaconda安装完成后在开始菜单里通常会有一个“Anaconda3 (64-bit)”文件夹也可能是“Anaconda3”或“Anaconda Prompt”等变体里面一般包含这些入口快捷方式作用指向目标类型Anaconda Prompt打开已激活base环境的cmd窗口cmd.exe activate.batAnaconda PowerShell Prompt在PowerShell中激活base环境powershell.exe conda-hook.ps1Jupyter Notebook启动Jupyter Notebookpython.exe cwp.pySpyder启动Spyder IDEpython.exe cwp.pyAnaconda Navigator图形化启动器pythonw.exe anaconda-navigator-script.pyReset Spyder Settings重置Spyder配置python.exe spyder-reset脚本这些快捷方式的核心逻辑并不神秘——它们本质上就是一条条带参数的命令行只是把参数封装成了图形化的.lnk文件。理解了这一点你就知道手动创建快捷方式完全可行因为所有信息都是可以自己拼出来的。这一点会在后面第3节里详细展开。1.3 先弄清楚丢失类型再动手动手修复之前建议先花两分钟判断一下当前的丢失类型因为不同类型的处理方式完全不同。我一般把快捷方式问题分成三类完全丢失、部分丢失、失效残留。完全丢失是指开始菜单里Anaconda那个文件夹都没有了搜Anaconda Prompt也什么都搜不到。这种情况最干净直接用mkmenus或重跑安装程序即可。部分丢失是指文件夹还在但里面只剩一两条快捷方式比如只有Anaconda Navigator其他全没了。这种情况除了重建缺失项还得检查一下是不是Jupyter、Spyder等子包本身出了问题否则重建出来的快捷方式指向的是不存在的入口。失效残留是指快捷方式还在但点击后弹窗提示“找不到应用程序”或“路径不存在”。这种情况通常是Anaconda安装目录被移动或改名导致。直接改指向路径就行不需要重新生成。判断方法也很简单打开文件资源管理器进入你的Anaconda安装目录看python.exe、Scripts\activate.bat、Scripts\jupyter-notebook.exe这些关键文件是否都在。如果都在说明是入口问题如果连这些文件都没了那才要考虑环境真坏了。2. mkmenus到底是个什么工具为什么命令会报错2.1 mkmenus的来历与工作原理mkmenus是Anaconda发行版里一个专门的命令行工具位置在Anaconda安装目录下的Scripts文件夹中比如C:\Users\用户名\Anaconda3\Scripts\mkmenus.exe。它的作用是批量扫描当前conda环境中带有菜单配置的包然后调用底层的menuinst库在Windows开始菜单中生成对应的快捷方式。从实现角度看mkmenus本身并不复杂它更像是一个便捷的包装入口。真正干活的是menuinst这个Python库它负责解析包的菜单配置通常是JSON格式然后调用Windows的COM接口创建.lnk文件。mkmenus负责把这些包对应的JSON配置全部收集起来依次交给menuinst去处理。Anaconda的很多核心组件在安装时会往安装目录下写入菜单配置比如Menu文件夹里的jupyter_menu.json、spyder_menu.json、anaconda_navigator_menu.json等。mkmenus的工作就是读取这些配置并生成快捷方式。用下面这行命令可以确认自己的Anaconda里有没有mkmenusdir C:\Users\%USERNAME%\Anaconda3\Scripts\mkmenus*如果输出里能看到mkmenus.exe或mkmenus-script.py说明你的版本还保留了旧工具。如果提示“找不到文件”说明你的Anaconda版本较新mkmenus已经被移除或整合进了其他机制这种情况后面会讲对应的替代方案。2.2 报错“ERROR: did not expect mkmenus”的真正原因这个报错信息在中文社区里被很多人贴出来过但真正说清楚原因的帖子很少。我排查过不少次也复现过结论其实很直接这个错误几乎都出在命令的执行方式上。当你在终端里输入conda mkmenus这样的命令时conda的主命令解析器会把mkmenus当作自己的一个子命令来处理。conda支持的子命令无非是create、activate、install、env、run这些当解析器遇到一个从没见过的mkmenus时就会直接抛出ERROR: did not expect mkmenus然后退出。为什么会有人这样输入因为很多教程里只写了半句话比如“在Anaconda Prompt中执行mkmenus命令以重建开始菜单”新手用户看到这句话默认会把它理解为“输入conda命令来操作”于是在conda后面跟上mkmenus结果就撞上了这个解析错误。还有一种情况是用户从普通cmd窗口执行没有先激活conda环境。此时mkmenus不在PATH里系统会提示“不是内部或外部命令”而不是上面那条错误。出现“did not expect”字样说明命令已经进了conda程序内部而不是系统找不到程序。解决思路非常直接不要给mkmenus加conda前缀直接运行工具本身。如果直接运行提示找不到命令就用完整路径调用。下面进入实操环节。2.3 执行mkmenus之前先确认三个前置条件条件一找到Anaconda真实安装路径。默认安装在C:\Users\用户名\Anaconda3系统级安装可能位于C:\ProgramData\Anaconda3手动移动过的则在你的自定义位置。别凭记忆猜路径直接在文件资源管理器里确认。条件二确认Scripts目录下存在mkmenus。如果不存在放弃方案一直接跳到后面用Repair或手动创建快捷方式。条件三确认当前用户对开始菜单目录有写入权限。Windows的开始菜单分用户级和系统级如果你用普通用户权限运行mkmenus写入系统级开始菜单时可能被拒绝。稳妥起见直接用管理员身份运行cmd再执行mkmenus。三个条件都满足工具本身基本就能正常工作。3. 从根源修复五条实测可用的路径3.1 方案一在Anaconda Prompt里直接运行mkmenus如果你的Anaconda版本还保留mkmenus这是最快的一条路。按下Win键输入cmd然后按CtrlShiftEnter以管理员身份打开命令提示符。先确认conda可用conda --version输出类似conda 4.13.0就说明conda环境没问题。如果你在普通cmd里直接输入conda提示找不到命令说明Scripts目录不在PATH里需要先手动激活环境call C:\Users\%USERNAME%\Anaconda3\Scripts\activate.bat激活之后再执行C:\Users\%USERNAME%\Anaconda3\Scripts\mkmenus.exe注意这里的路径要替换成你自己的实际安装路径。执行时工具是静默运行的正常情况下不会打印太多内容几秒内就结束。如果执行后没有任何报错去开始菜单刷新一下应该就能看到Anaconda3文件夹和里面的快捷方式了。如果执行后没反应打开任务管理器看看mkmenus进程是否一闪而过。如果反复出现启动后立刻退出最常见的原因是权限不够右键cmd选择“以管理员身份运行”再执行一次。如果还是不行看后面的方案二。3.2 方案二重跑Anaconda安装程序选择Repair这个方法最稳妥无论你的Anaconda是哪个版本都适用而且它不会删除你的环境和已安装的包。找到你最初下载的Anaconda安装包或者去Anaconda官网重新下载相同大版本建议是同一个小版本的安装程序。双击运行安装向导到达第二步时会提供三个选项Modify修改——可用于添加或删除功能组件Repair修复——修复所有系统级文件和注册表项Uninstall卸载——完全移除Anaconda选择Repair点击Next等待进度条走完就好。Repair过程本质上是在重新执行安装脚本它会把Anaconda的目录结构、关键文件、开始菜单快捷方式、文件关联、PATH环境变量全部重写一遍。因为我印象里Repair在早期版本中确实会重新处理菜单项。但有一点需要注意Repair前最好把所有Python进程先关掉。我试过在后台开着Jupyter的情况下直接跑Repair结果Jupyter占用了部分conda包文件Repair到一半弹出文件锁错误只能终止后把进程全杀掉再重新跑。所以执行前建议先看下任务管理器把pythonw.exe、python.exe、anaconda-navigator这些进程全部结束。另一个注意事项是Repair可能需要十几分钟取决于你的磁盘速度和包数量。中间不要强行关闭安装向导否则可能造成新的损坏。3.3 方案三通过Anaconda Navigator自动修复如果你的Anaconda版本较新2022.10之后或者Scripts目录里找不到mkmenus可以直接借助Anaconda Navigator。Navigator本身就是一个图形化的环境管理工具它内置了重新创建快捷方式的能力。从文件资源管理器进入Anaconda安装目录下的Scripts文件夹找到anaconda-navigator.exe双击运行或者直接在当前cmd窗口输入anaconda-navigator如果提示找不到命令先执行conda install anaconda-navigator再启动。Navigator启动后进入左侧的“Home”页面这里会列出当前环境下已经安装的应用比如Jupyter Notebook、Spyder、Qt Console等。在每个应用图标的右上角有一个设置或齿轮按钮点击后会弹出下拉菜单里面通常有“移除”和“修复”之类的选项。选择“修复”Navigator会重新安装该应用的菜单快捷方式。如果只有“移除”和“打开”没有“修复”那就先执行“移除”再回到页面找到该应用点击“安装”效果是等价的——重新安装的过程中菜单项会重建。这个方法针对单个应用的快捷方式恢复效果很好。但它也有局限如果连Anaconda Navigator自己都没了启动入口你得先从Scripts目录手动启动它如果Navigator本身启动就报错则需要先通过命令行修复conda环境。所以它更适合“部分丢失”的场景而不是“完全丢失”的兜底方案。3.4 方案四完全不依赖mkmenus手动创建快捷方式手动创建快捷方式是我最推荐给那些“只需要两三条常用入口”的用户的方案。它透明、可控不用依赖任何工具出问题也能一眼看到原因。先说Anaconda Prompt这是最基础的入口。在桌面或任意目录右键“新建”→“快捷方式”位置栏填%windir%\System32\cmd.exe /K C:\Users\你的用户名\Anaconda3\Scripts\activate.bat C:\Users\你的用户名\Anaconda3如果你把Anaconda装到了D盘就把后面两个路径改成实际路径。名称填“Anaconda Prompt”完成创建后右键快捷方式选择“属性”在“起始位置”栏填%USERPROFILE%这样每次打开都会从用户主目录开始避免路径混乱。Anaconda PowerShell Prompt的快捷方式目标填%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command C:\Users\你的用户名\Anaconda3\shell\condabin\conda-hook.ps1 ; conda activate baseJupyter Notebook稍微复杂一点因为它要走cwp.py这个辅助脚本。目标填C:\Users\你的用户名\Anaconda3\python.exe C:\Users\你的用户名\Anaconda3\cwp.py C:\Users\你的用户名\Anaconda3 C:\Users\你的用户名\Anaconda3\python.exe C:\Users\你的用户名\Anaconda3\Scripts\jupyter-notebook-script.py这个命令的逻辑是第一个python.exe启动cwp.pycwp.py会临时把Anaconda目录加入Python路径和当前目录然后启动第二个python.exe执行真正的jupyter-notebook-script.py。如果Scripts目录里没有jupyter-notebook-script.py这个文件说明notebook包没装完整先执行conda install jupyter再来创建快捷方式。Anaconda Navigator的快捷方式目标填C:\Users\你的用户名\Anaconda3\pythonw.exe C:\Users\你的用户名\Anaconda3\cwp.py C:\Users\你的用户名\Anaconda3 C:\Users\你的用户名\Anaconda3\pythonw.exe C:\Users\你的用户名\Anaconda3\Scripts\anaconda-navigator-script.py注意这里用的是pythonw.exe而不是python.exe因为pythonw不会弹出黑色控制台窗口。创建好之后按下WinR输入shell:start menu回车进入当前用户的开始菜单目录再进入Programs文件夹。新建一个名为“Anaconda3 (64-bit)”或“Anaconda3”的文件夹把所有快捷方式放进去。刷新开始菜单就能看到了。如果你希望所有用户都能看到可以放到shell:common start menu对应的公共目录。3.5 方案五用menuinst直接触发菜单生成这是备选方案适合那些有较好命令行经验的用户。如果mkmenus已经不存在了而你又不想启动Navigator可以直接调用menuinst库。先安装menuinstconda install menuinst安装完成后找到Anaconda安装目录下的Menu文件夹一般在C:\Users\用户名\Anaconda3\Menu或C:\ProgramData\Anaconda3\Menu查看里面有哪些.json文件dir C:\Users\%USERNAME%\Anaconda3\Menu\*.json这些JSON文件就是各个应用的菜单配置。拿到文件名后逐个调用menuinst生成快捷方式python -m menuinst C:\Users\%USERNAME%\Anaconda3\Menu\jupyter_menu.json这种方法其实就是在手动复现mkmenus的行为优点是可以精确控制要生成哪些快捷方式缺点是你要对路径和文件名比较熟。如果不想折腾直接选方案二Repair会更省心。3.6 五条路怎么选一张表看懂场景推荐方案理由老版本AnacondaScripts里有mkmenus方案一直接运行mkmenus最快一条命令搞定新版本没有mkmenus但Navigator能启动方案三Navigator修复图形化操作最直观快捷方式全部消失只想省事方案二重跑安装程序选Repair最彻底不易遗漏只想保留少数几个入口方案四手动创建快捷方式透明可控零依赖熟悉命令行的老手方案五调用menuinst精确控制每个菜单项4. 常见问题与排查技巧实录4.1 提示“不是内部或外部命令”而不是“did not expect”这说明你输入的是裸命令mkmenus但它不在PATH里。在普通cmd窗口中Anaconda的Scripts目录默认并不在系统PATH中除非安装时勾选了“Add to PATH”所以直接敲mkmenus是找不到的。解决办法先用activate.bat激活环境再用完整路径或者干脆采用方案四手动创建。4.2 mkmenus执行完了但开始菜单里还是没有先检查执行时用的权限。如果Anaconda安装在C:\ProgramData这类系统目录mkmenus往公共开始菜单写入时会因为权限不足而静默失败。然后检查写入位置。当前用户开始菜单目录和公共开始菜单目录是两套独立的体系。你可以在cmd里分别执行下面两条命令看Anaconda3文件夹是否出现在其中explorer shell:start menu explorer shell:common start menu如果两条路径下都没有说明生成确实失败了。如果只在公共目录下而你在开始菜单看的是个人视图那也会造成“看不到”的错觉。还有一种可能是Windows资源管理器图标缓存问题。按下WinR输入ie4uinit.exe -show回车强制刷新图标缓存如果还没变化在任务管理器里重启explorer进程。4.3 权限不足导致mkmenus写入失败这是系统级安装Anaconda时最常遇到的坑。解决办法很直接以管理员身份运行cmd再执行一次mkmenus。如果之前是以管理员身份运行的但仍然失败可以用PowerShell强制提权Start-Process cmd -ArgumentList /c C:\ProgramData\Anaconda3\Scripts\mkmenus.exe -Verb RunAs执行完再去验证。如果依然不行直接改用方案二RepairRepair内部会以管理员权限完成所有系统级写入。4.4 新版本中找不到mkmenus怎么办Anaconda从某个版本开始不再把mkmenus打包到默认环境中转而完全交给Navigator来管理开始菜单入口。如果你的Scripts目录下找不到mkmenus别纠结了方案一直接跳过即可。此时最快的路径是方案二Repair或者方案三Navigator自动修复。如果你平时主要在命令行工作甚至可以不修复开始菜单——直接用cmd /K 路径\activate.bat就能打开一个和Anaconda Prompt等价的环境。4.5 快捷方式存在但打开提示找不到目标这种情况要么是目标路径变了要么是快捷方式的参数被改过。右键快捷方式查看属性里的“目标”和“起始位置”对照实际安装路径确认。你也可以用PowerShell批量列出所有Anaconda相关快捷方式的真实指向Get-ChildItem $env:APPDATA\Microsoft\Windows\Start Menu\Programs\Anaconda3* -Filter *.lnk | ForEach-Object { $shell New-Object -ComObject WScript.Shell $shortcut $shell.CreateShortcut($_.FullName) Write-Host $($_.Name): $($shortcut.TargetPath) }这样一目了然哪些指向已经失效哪些参数少了直接修改对应快捷方式即可。4.6 电脑重启后快捷方式又消失如果每次修复完能正常用但重启电脑后又没了大概率是杀毒软件或者系统清理类软件在搞鬼。把Anaconda整个安装目录加入杀毒软件的信任列表再执行一次修复观察几天。另外如果你使用的是Windows临时用户配置文件比如域环境下的强制配置文件快捷方式写入当前用户目录后并不会被保留。这种场景下建议把快捷方式放到公共开始菜单目录C:\ProgramData\Microsoft\Windows\Start Menu\Programs。这个目录对所有用户生效不受个人配置文件重置影响。5. 防止快捷方式再次丢失的几个习惯修复只是第一步我更想说的是这类问题完全可以预防。根据我这几年的使用经验下面三个习惯能大幅降低Anaconda快捷方式再出幺蛾子的概率。第一个习惯是不要随意移动Anaconda安装目录。Anaconda的很多配置包括开始菜单快捷方式目标、conda环境配置、PyCharm等IDE的Python解释器路径都写死了安装时的绝对路径。移动目录表面上看起来只是改了位置实际上会引发连锁反应快捷方式失效只是最先暴露出来的问题而已。如果非得换盘正确流程是把旧环境先导出conda env export environment.yml然后卸载旧Anaconda在新位置重新安装再用conda env update -f environment.yml恢复所有环境。这样虽然麻烦但一劳永逸。第二个习惯是装完Anaconda后给开始菜单里的Anaconda3文件夹做一次备份。这个文件夹就是几个.lnk文件复制一份到另存目录成本极低但将来万一丢了直接把备份的.lnk批量拷回来就能恢复连mkmenus都不用跑。我在自己电脑上就做过一次备份后来遇到快捷方式被Windows更新误删直接复制粘贴两秒钟解决。第三个习惯是养成用命令行启动的习惯。就算开始菜单快捷方式全没了也不影响日常使用按WinR输入cmd然后call C:\Anaconda3\Scripts\activate.bat一个Anaconda Prompt就出来了。我甚至在常用的终端软件里配置了独立的环境切换脚本直接替代了开始菜单入口。快捷方式这东西更多是给鼠标流用户和刚入门的人用的熟悉命令行之后它丢了也就丢了并不影响工作流。按照我个人经验来排一个优先级如果你家里还有保存着旧版安装包而且环境比较多Repair是首选如果你想快速恢复几条核心入口手动创建快捷方式耗时五分钟最有性价比如果你愿意为稳定性花时间那最好还是先把环境导出备份再找一个新版本的Anaconda做干净安装这样不用在快捷方式这种小问题上来回折腾。另外遇到问题先调整一下心态——绝大多数Anaconda快捷方式问题本质上是系统层面的入口问题不是环境损坏。只要conda --version还有输出你的环境就是完整的。从这个角度去排查很多看似吓人的报错走近一看都只是小灰尘拍一拍就好了。