Powershell不承认conda为cmdlet,函数或可操作程序

时间:2018-04-30 03:34:31

标签: python powershell conda

我一直在我的新笔记本电脑上遇到这个问题几个小时,无法弄清楚是什么导致它。我正在尝试使用conda安装scikit-learn并获得以下错误 conda:术语“conda”未被识别为cmdlet,函数,脚本文件或可操作程序的名称。校验 名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。 在行:1个字符:1 + conda install -c anaconda scikit-learn + ~~~~~     + CategoryInfo:ObjectNotFound:(conda:String)[],CommandNotFoundException     + FullyQualifiedErrorId:CommandNotFoundException 有没有其他人在Windows 10上有类似的问题?

3 个答案:

答案 0 :(得分:1)

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

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

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

一个建议是:

  

沮丧和肮脏:

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

  2.   
  3. 如果没有工作或不可接受 - 正如@TurboTim所示:

         

    Powershell需要每个环境的路径(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

  4.         

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

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美分时插入

答案 1 :(得分:0)

我在网上找到了此文件:Unblock-File -Path。\ Get-RemoteProgram.ps1 我将尽快在Power Shell中尝试该命令。

答案 2 :(得分:0)

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

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