2016-03-17 3 views
3

Я установил Python 3.5 с помощью Anaconda и 2.7 с помощью следующей команды:Python 2 и 3 из Powershell

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 
+1

Что такое 'активировать'? Если это командный файл, переменные среды, которые он устанавливает, не будут распространяться на PowerShell. Чтобы исправить это, вы можете использовать функцию 'Invoke-CmdScript' из [этой статьи] (http://windowsitpro.com/powershell/take-charge-environment-variables-powershell). –

+0

@Bill_Stewart, 'activate' - это команда, которую я нашел здесь на SO, чтобы« активировать »среду« 2.7 »в установке Anaconda3. Это наиболее распространенное решение, которое я читал на форуме. Однако, несмотря на то, что команда запускалась без проблем в PowerShell, она фактически не позволяла мне запускать '2.7' из командной строки. Вот пример сообщения [здесь] (http://stackoverflow.com/questions/24405561/how-to-install-2-anacondas-python-2-7-and-3-4-on-mac-os-10 -9) –

+0

Снова: Если 'activate' - командный файл (сценарий оболочки cmd.exe) и он устанавливает переменные среды, вам нужно будет запустить его с помощью функции' Invoke-CmdScript' в статье. –

ответ

2

Я решил закрыть этот вопрос следующим образом: используйте 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. Сначала пройдите site и загрузите скрипт 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  
0

С вашей переменной PATH это кажется вы создали PY27 окр с именем «р27» Try «активировать p27» Вы всегда можно дважды проверить имена env, просмотрев каталог «envs» в папке установки conda.

+0

Я использовал «активировать p27» безрезультатно. Честно говоря, я не уверен, какие шаги я должен предпринять после активации среды. Например, чтобы использовать версию python в p27 после активации, я использую python, python2, p27 или py -2 для запуска python 2.7? Я пробовал их всех, и ничего похожего на трюк. –

1

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

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

для python2:

Set-Alias ​​python2 C: \ Users \ имя_пользователя \ Python2location \ python.exe

для Python3:

Set-Alias ​​python3 C: \ Users \ имя_пользователя \ python3location \ питона.ехе

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

0

обходной путь, если вы любите PowerShell по сравнению с CMD без борьбы с изменением «вещи», чтобы набрать:

cmd #to get internally into command prompt from ps 
activate envname 
powershell #to get back 
Смежные вопросы