Как запустить несколько версий Python в Windows

У меня было две версии Python, установленные на моей машине (версии 2.6 и 2.5). Я хочу запустить 2.6 для одного проекта и 2.5 для другого.

Как я могу указать, что я хочу использовать?

Я работаю над Windows XP SP2.

11 ответов


запуск другой копии Python так же просто, как запуск правильного исполняемого файла. Вы упоминаете, что запустили экземпляр python из командной строки, просто набрав python.

то, что это делает под Windows, является тралом переменной среды %PATH%, проверяя исполняемый файл, либо пакетный файл (.летучая мышь), командный файл (.cmd) или какой-либо другой исполняемый файл для запуска, который соответствует данному имени. Когда он находит правильный файл для запуска, он делает это.

теперь, если вы установили две версии python 2.5 и 2.6, в пути будут оба их каталога, что-то вроде PATH=c:\python.5;c:\python.6 но Windows перестанет изучать путь, когда найдет совпадение.

что вам действительно нужно сделать, это явно вызвать одно или оба приложения, такие как c:\python.5\python.exe или c:\python.6\python.exe.

другой альтернативой является создание ярлыка для соответствующего python.exe, вызывающий один из них python25, а другой python26; вы можете просто запустить python25 в командной строке.


добавление еще двух решений проблемы:

  • использовать pylauncher (если у вас есть Python 3.3 или новее, нет необходимости устанавливать его как приходит С Python уже) и либо добавить строки shebang в ваши скрипты;

#! c:\[path to Python 2.5]\python.exe - для скриптов, которые вы хотите запустить с Python 2.5
#! c:\[path to Python 2.6]\python.exe - для скриптов, которые вы хотите запустить с Python 2.6

и вместо выполнить команда pylauncher (py) specyfing какую версию Python вы хотите;

py -2.6 – версия 2.6
py -2 – последняя установленная версия 2.x
py -3.4 – версия 3.4
py -3 – последняя установленная версия 3.x

  • установить virtualenv и создать два virtualenvs;

virtualenv -p c:\[path to Python 2.5]\python.exe [path where you want to have virtualenv using Python 2.5 created]\[name of virtualenv]

virtualenv -p c:\[path to Python 2.6]\python.exe [path where you want to have virtualenv using Python 2.6 created]\[name of virtualenv]

для пример

virtualenv -p c:\python2.5\python.exe c:\venvs.5

virtualenv -p c:\python2.6\python.exe c:\venvs.6

затем вы можете активировать первый и работать с Python 2.5, как это
c:\venvs.5\activate
и когда вы хотите переключиться на Python 2.6 вы

deactivate  
c:\venvs.6\activate

из Python 3.3, есть официальный Python launcher для Windows (http://www.python.org/dev/peps/pep-0397/). Теперь, вы можете использовать #!pythonX чтобы определить нужную версию интерпретатора также В Windows. Подробнее в моем другом комментарии или прочитайте PEP 397.

резюме: на py script.py запускает версию Python, указанную в #! или Python 2, Если #! отсутствует. The py -3 script.py запускает В Python 3.


согласно @alexander вы можете сделать набор символических ссылок, как показано ниже. Поместите их куда-нибудь, что включено в ваш путь, чтобы их можно было легко вызвать

> cd c:\bin
> mklink python25.exe c:\python25\python.exe
> mklink python26.exe c:\python26\python.exe

покуда c:\bin или где бы вы их ни разместили, теперь вы можете пойти

> python25

при установке Python он не будет перезаписывать другие установки других основных версий. Итак, установка Python 2.5.x не будет перезаписывать Python 2.6.x, хотя установка 2.6.6 перезапишет 2.6.5.

так что вы можете просто установить его. Затем вы называете Python версии вы хотите. Например:

C:\Python2.5\Python.exe

для Python 2.5 на windows и

C:\Python2.6\Python.exe

для Python 2.6 в windows или

/usr/local/bin/python-2.5

или

/usr/local/bin/python-2.6

on окна Unix (включая Linux и OS X).

при установке на Unix (включая Linux и OS X) вы получите общий python команда установлена, которая будет последней, которую вы установили. Это в основном не проблема, так как большинство скриптов будут явно вызывать /usr/local/bin/python2.5 или что-то, чтобы защитить от этого. Но если вы не хотите этого делать, и вы, вероятно, не можете установить его следующим образом:

./configure
make
sudo make altinstall

обратите внимание на "altinstall", что означает, что он установит его, но он будет не заменить


вот быстрый Хак:

  1. перейдите в каталог версии python, которую вы хотите запустить
  2. Правой Кнопкой Мыши на python.exe
  3. выберите 'Создать Ярлык'
  4. дайте этому ярлыку имя для вызова (я использую p27,p33 и т. д.)
  5. переместите этот ярлык в свой домашний каталог (C:\Users\Your name)
  6. Откройте командную строку и введите name_of_your_shortcut.lnk(Я использую p27.lnk)

cp c:\python27\bin\python - ... exe как вместо python2.7.exe

cp c:\python34\bin\python - ... exe как python3.4.exe

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

C:\Users\username>python2.7
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>>

C:\Users\username>python3.4
Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

самый простой способ запуска нескольких версий python в windows описывается ниже следующим образом: -

1) Скачать последние версии python от python.org/downloads выбрав соответствующую версию для вашей системы.

2) Запустите программу установки и выберите добавить python 3.x к пути чтобы установить путь автоматически в python 3 (вам просто нужно щелкнуть флажок). Для python 2 Откройте установщик python 2, Выберите любые предпочтения, которые вы хотите, но просто не забудьте установить добавить python.exe в путь до будет установлен на локальном жестком диске, теперь просто нажмите кнопку Далее и дождитесь завершения установки.

3) когда обе установки будут завершены. щелкните правой кнопкой мыши на моем компьютере--перейти к свойствам--выберите расширенные Системные настройки--перейти к переменным среды--Нажмите кнопку Создать в разделе системные переменные и добавить новый системная переменная С переменной имя as PY_PYTHON и значение переменной до 3. Теперь нажмите на OK и вы должны быть сделаны.

4) Теперь, чтобы проверить это, откройте командная строка. После того, как вы там типа python или py, Он должен открыть питон3.

5) Теперь выйдите из python3, набрав exit (). Теперь введите py -2 он должен открыть python 2.

Если ничего из этого не работает, перезагрузите компьютер, и если проблема все еще сохраняется, удалите все и повторите шаги.

спасибо.


использование пакетного файла для переключения, легко и эффективно в windows 7. Я использую это:

в диалоговом окне переменная среды (C:\Windows\System32\SystemPropertiesAdvanced - ... EXE-файл),

В разделе пользовательские переменные

  1. добавлен %pathpython% в переменную среды path

  2. удалены все ссылки на Python пути

В разделе системные переменные

  1. удалил любые ссылки на python pathes

Я создал пакетные файлы для каждой установки python (пример для 3.4 x64

Name = SetPathPython34x64 !!! ToExecuteAsAdmin.bat ; -) просто чтобы помнить.

содержимое файла =

     Set PathPython=C:\Python36AMD64\Scripts\;C:\Python36AMD64\;C:\Tcl\bin

     setx PathPython %PathPython%

чтобы переключаться между версиями, я выполняю пакетный файл в режиме администратора.

!!!!! Изменения действуют для последующих открытых окон командной строки. !!!

Так Я полностью контролирую это.


с помощью Редактор Быстрой Среды вы можете нажать на верхнюю часть каталога нужной установки Python. Например, чтобы запустить python из c:\Python27 каталог, убедитесь, что c:\Python27 каталог находится перед или поверх c:\Python36 каталог в переменной среды Path. По моему опыту, выполняется первый исполняемый файл python, найденный в среде Path. Например, у меня установлен MSYS2 с Python27 и так как я добавил C:\MSYS2 к путь до C:\Python36 питон.exe с C:\MSYS2.... папка выполняется.


просто вызовите правильный исполняемый файл