Python 2 и 3 от Powershell

Я установил Python 3.5 используя Анаконду и 2.7 используя следующую команду:

conda create -n py27 python=2.7 anaconda

Это успешно установлено 2.7 как отдельная среда с папкой Anaconda3:

# original installation path for 3.5
C:\Users\username\AppData\Local\Continuum\Anaconda3

# path for 2.7 after conda create -n is run
C:\Users\username\AppData\Local\Continuum\Anaconda3\envs\py27

Это прекрасно работает, пока я использую IDE, такую ​​как Spyder или IPython Notebook, где я могу выбрать, какую версию Python. Тем не менее, я не смог использовать py27 (Python 2.7) в PowerShell. Я пытался использовать:

activate py27

еще python команда все еще запускается 3.5 а также py27 вызывает эту ошибку:

py27 : The term 'py27' is not recognized as the name of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1 + py27
    + ~~~~ 
    + CategoryInfo   : ObjectNotFound: (py27:String) [], CommandNotFoundException
     + FullyQualifiedErrorId : CommandNotFoundException

Я перепробовал все, что знаю или читал здесь на SO, но ничего, что я пробовал, не смогло решить проблему. Я не уверен, поможет ли это, но вот моя переменная PATH для справки:

C:\Users\username\AppData\Local\Continuum\Anaconda3;C:\Users\username\AppData\Local\Continuum\Anaconda3\Scripts;C:\Users\username\AppData\Local\Continuum\Anaconda3\Library\bin;%SystemRoot%\system32\WindowsPowerShell\v1.0\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;[stuff in between];C:\Users\username\AppData\Local\Continuum\Anaconda3\envs\p27;C:\Users\username\AppData\Local\Continuum\Anaconda3\envs\p27\Scripts\;C:\Users\username\AppData\Local\Continuum\Anaconda3\envs\p27\Library\bin

4 ответа

Решение

Я решил закрыть этот вопрос следующим решением: использовать Cmd.exe или используйте PowerShell с Биллом Стюартом Invoke-CmdScript (см. комментарии). Во-первых, более простое решение с использованием Command Prompt (Cmd.exe):

# to activate
C:\Users\me\> activate py2

# to deactivate and return to Python 3.5
C:\Users\me\> deactivate

Что активирует среду Python 2.7, которую я создал с помощью conda, Теперь для Powershell версия. Сначала зайдите на этот сайт и загрузите Environment.ps1 скрипт. Для меня он загружается как текстовый файл, поэтому я открыл файл, удалил .txt расширение и заменил его .ps1, Итак, допустим, я спас Environment.ps1 в следующем каталоге C:\Users\user_name\AppData\Local\invoke_cmdscript, Возьмите этот путь и добавьте его в пользовательскую переменную PATH в форме переменных среды. Теперь команды для ввода в вашем PowerShell окно:

# dot-source my file
. Environment.ps1

# activate 2.7 environment (if not in the directory of activate.bat, specify full path)
Invoke-CmdScript .\activate.bat py2


# deactivate 2.7 environment (same note about current directory and full paths)
Invoke-CmdScript .\deactivate.bat    

Если вы хотите, чтобы python 3 запускался каждый раз, когда вы вводите python3, а python 2 запускался каждый раз, когда вы вводите python2:

В зависимости от того, где находятся ваши исполняемые файлы, просто создайте псевдонимы, используя следующие коды:

для python2:

Set-Alias ​​python2 C:\Users\ имя_руза \python2location\python.exe

для python3:

Set-Alias ​​python3 C:\Users\ имя_руза \python3location\python.exe

чтобы узнать, как сделать их постоянными, проверьте мой ответ на следующей странице

Обходной путь, если вы любите powershell по сравнению с cmd, не имея дело с изменением "вещи", это набрать:

cmd #to get internally into command prompt from ps
activate envname
powershell #to get back

Из вашей переменной PATH кажется, что вы создали env py27 с именем "p27". Попытайтесь "активировать p27". Вы всегда можете дважды проверить имена env, заглянув в каталог "envs" в вашей папке установки conda.

Другие вопросы по тегам