Powershell не распознает conda как командлет, функцию или работоспособную программу - PullRequest
0 голосов
/ 30 апреля 2018

У меня уже несколько часов возникает эта проблема на моем новом ноутбуке, и я не могу понять, что ее вызывает. Я пытаюсь установить scikit-learn с conda и получить следующую ошибку

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

написание имени или, если путь был указан, проверьте правильность пути и повторите попытку. В строке: 1 символ: 1 + Конда установить -c Анаконда scikit-Learn + ~~~~~ + CategoryInfo: ObjectNotFound: (conda: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

У кого-нибудь еще была похожая проблема в Windows 10?

1 Ответ

0 голосов
/ 30 апреля 2018

Вы уже активировали среду для этого варианта использования?

Существует длинная ветка об этом на обсуждении conda на GitHub, касающемся сбоев 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. Ниже добавлены функции Invoke-CmdScript, Conda-Activate, Conda-Deactivate к вашей PowerShell. Смотри ссылку Тима выше, почему.

    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 цента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...