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.