【问题标题】:Powershell not recognizing conda as cmdlet, function, or operable programPowershell 无法将 conda 识别为 cmdlet、函数或可运行程序
【发布时间】:2018-10-10 03:21:16
【问题描述】:

我的新笔记本电脑出现这个问题已经有几个小时了,但不知道是什么原因造成的。我正在尝试使用 conda 安装 scikit-learn 并收到以下错误

conda : The term 'conda' is not recognized as the name of a cmdlet, function, script file, or operable program. Check

名称的拼写,或者如果包含路径,请验证路径是否正确并重试。 在行:1 字符:1 + conda install -c anaconda scikit-learn + ~~~~~ + CategoryInfo : ObjectNotFound: (conda:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

还有其他人在 Windows 10 上遇到过类似问题吗?

【问题讨论】:

  • 你使用的是什么版本的powershell?如果您使用的是 Windows,这就是安装此产品时所说的:WinPython 项目将 scikit-learn 作为附加插件分发。
  • 我使用的是 PowerShell 5.1

标签: python powershell conda


【解决方案1】:

您是否已经为此用例激活了环境?

在 GitHub conda 讨论关于 conda 失败各种 Windows 7 及更高版本有一个长期运行的线程,这里:

https://github.com/conda/conda/issues/626

一个建议是:

又脏又臭:

  1. 检查激活是否在 cmd.exe 中有效。

  2. 如果不起作用或不可接受——正如@TurboTim 所示:

    Powershell 需要每个 env 的路径(anaconda3\envs\someenv\py33.exe。费力!:p

    如果您不介意稍微污染您的 powershell,您可以创建一个配置文件脚本,该脚本在您每次打开 powershell 时运行。 下面将向您的 powershell 添加函数 Invoke-CmdScript、Conda-Activate、Conda-Deactivate。请参阅上面 Tim 的链接了解原因。

    PS C:> New-Item -Path $profile -ItemType File -Force

这会在以下位置创建一个脚本:

PS C:\> echo $profile

...类似于 C:\Users\yourUser\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 编辑该脚本。

PS C:\> explorer $profile

添加此代码,保存并重新打开 powershell(或 . $profile ):

function Invoke-CmdScript {
  param(
    [String] $scriptName
  )
  $cmdLine = """$scriptName"" $args & set"
  & $Env:SystemRoot\system32\cmd.exe /c $cmdLine |
  Select-String '^([^=]*)=(.*)$' | ForEach-Object {
    $varName = $_.Matches[0].Groups[1].Value
    $varValue = $_.Matches[0].Groups[2].Value
    Set-Item Env:$varName $varValue
  }
}
$condaRoot = "$Env:USERPROFILE\Anaconda3"
function Conda-Activate([string]$condaEnv) {Invoke-CmdScript $condaRoot\Scripts\activate.bat $condaEnv}
function Conda-Deactivate {Invoke-CmdScript $condaRoot\Scripts\deactivate.bat}


Usage:
C:\> Conda-Activate TFTheano
C:\> Conda-Activate root
C:\> conda info --envs

免责声明:正如所写的那样,停用对我没有帮助,因此我只是使用 Conda-Activate 来移动。还, 我不怀疑将 Invoke-Cmd 添加到配置文件有安全警告,所以如果 2 美分,请插话

【讨论】:

    【解决方案2】:

    我在网上找到了这个:Unblock-File -Path .\Get-RemoteProgram.ps1 我将尽快在 power shell 中尝试该命令。

    【讨论】:

      【解决方案3】:

      我之前在 conda 之前安装了 Python,因为据说将两者放在一起会带来复杂性,所以我卸载了原始的 Python 解释器。当尝试使用 conda 运行 python 脚本时出现同样的错误时,这对我有用。

      TLDR;只需将 conda.exe 的路径添加到环境变量中即可。

      【讨论】:

        猜你喜欢
        • 2014-08-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-19
        • 1970-01-01
        • 1970-01-01
        • 2016-10-22
        • 2014-03-30
        相关资源
        最近更新 更多