7

我正在使用 Windows 10。

The system cannot find the path specified每当我运行 python 脚本、启动 cygwin 终端、bash 脚本时,我都会遇到错误消息...

没有有意义的错误消息来查明确切的原因。我怀疑这是由于 PATH 变量中的路径名之一指向不存在的路径。如何找出导致它的路径名?

如果有人可以指出其他可能的原因,请分享。

谢谢你。

4

2 回答 2

18

Powershell 路径测试

这是一个单行 Powershell 脚本,它将测试 PATH 环境变量中的所有路径是否存在。它将报告每个路径的 OK 或 MISSING。如果任何路径被列为缺失,您应该手动将它们从环境变量中删除。

@($env:path -split ";").ForEach({ if($_) {$result = 'MISSING |';if(Test-Path -path $_) { $result = '     OK |'};-join($result, ' ', $_); }})

选项 2

从提升的 CMD 提示符运行以下命令。这可确保所有 Windows 路径和可执行文件都可用、权限正确且未损坏。运行后,如果需要,它会给出进一步的指示。

sfc /scannow

关于证监会 /scannow


选项 3

打开注册表编辑器 (regedit.exe)。检查以下(如果存在)是否存在无效的不想要的路径。像往常一样,在进行更改之前备份注册表。

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

选项 4

从 Microsoft 站点获取小型实用程序Process Monitor 。Process Monitor 是用于 Windows 的高级监控工具,可显示实时文件系统、注册表和进程/线程活动。您将使用此工具找到违规路径。

  1. 下载、解压和运行
  2. 尽可能多地关闭打开的程序。
  3. 在 Process Monitor 中,文件下是一个捕获事件复选框,用于启用/禁用。一旦你打开它,停止捕获,然后选择 Edit -> Clear Display。
  4. 现在准备重现“系统找不到指定的路径”错误。
  5. 在触发错误之前,启用“捕获事件”。出现错误时,立即禁用进程监视器中的“捕获事件”。
  6. 使用“过滤器”菜单查找有问题的操作。查找结果为“NAME NOT FOUND”或“PATH NOT FOUND”的行。违规者可能会有一个“事件类”=“文件系统”|| “注册表”。它可能是另一个结果/事件类,但我会从那里开始。

一些过滤器试图缩小犯罪者的范围:

  • “结果”-> 不-> “成功”
  • “进程名称” -> IS -> “cmd.exe”(或其他外壳)

找到所需内容并解决问题后,您至少需要在重新测试之前关闭并重新打开提示,但可能还需要重新启动。

如果删除有问题的记录可以卸载而不是刚刚删除,这样做是因为错误/过时的文件系统路径可能只是问题的一半,另外还需要更新注册表记录。卸载程序应该解决这两个问题。

如果需要更改注册表,请确保首先使用 regedit.exe 创建备份。

于 2020-08-13T20:41:27.960 回答
0

请参阅有一种简单的方法来执行此操作,只需按照此链接在高级设置中找到您的 PATH 变量

https://docs.oracle.com/en/database/oracle/r-enterprise/1.5.1/oread/creating-and-modifying-environment-variables-on-windows.html#GUID-DD6F9982-60D5-48F6- 8270-A27EC53807D0

现在,您不太可能拥有多个 PATH 变量,因此我建议检查这些 PATH 变量中的每一个,无论哪个有问题,只需将其删除

或者,只需添加一个带有 python 库文件路径的新 PATH 变量

于 2020-08-13T16:37:02.507 回答