Могу ли я установить Python 3.x и 2.x на одном компьютере с Windows?

Я запускаю Windows, и оболочка/ОС автоматически запускает Python на основе параметров реестра при запуске программы в командной строке. Будет ли это нарушено, если я установлю версию Python 2.x и 3.x на том же компьютере?

Я хочу играть с Python 3, все еще имея возможность запускать скрипты 2.x на одном компьютере.

Ответ 1

Официальным решением для сосуществования является Python Launcher для Windows, PEP 397, который был включен в Python 3.3. 0. Установка дампов выпуска py.exe и pyw.exe в %SYSTEMROOT% (C:\Windows), который затем связан с сценариями py и pyw, соответственно.

Чтобы использовать новую пусковую установку (без ручной настройки своих собственных связей), оставьте включенную опцию "Расширения регистров". Я не совсем уверен, почему, но на моей машине он оставил Py 2.7 в качестве "по умолчанию" (из панели запуска).

Запуск сценариев путем их вызова из командной строки будет направлять их через пусковую установку и анализировать shebang (если он существует). Вы также можете явно вызвать пусковую установку и использовать коммутаторы: py -3 mypy2script.py.

Кажется, что всевозможные shebangs работают

  • #!C:\Python33\python.exe
  • #!python3
  • #!/usr/bin/env python3

а также бессмысленные злоупотребления

  • #! notepad.exe

Ответ 2

Здесь моя настройка:

  • Установите оба Python 2.7 и 3.4 с помощью установщиков Windows.
  • Перейдите к C:\Python34 (путь установки по умолчанию) и измените файл python.exe на python3.exe
  • Изменить ваши переменные среды, чтобы включить C:\Python27\;C:\Python27\Scripts\;C:\Python34\;C:\Python34\Scripts\;

Теперь в командной строке вы можете использовать python для 2.7 и python3 для 3.4.

Ответ 3

Вы можете установить оба.

Вы должны написать это перед вашим сценарием:

#!/bin/env python2.7

или, в конце концов...

#!/bin/env python3.6

Обновить

Мое решение отлично работает с Unix, после быстрого поиска в Google вот решение для Windows:

#!c:/Python/python3_6.exe -u

То же самое: перед вашим сценарием.

Ответ 4

Из версии 3.3 Python представила утилиту Launcher для Windows https://docs.python.org/3/using/windows.html#python-launcher-for-windows.

Итак, чтобы иметь возможность использовать несколько версий Python:

  • установить Python 2.x(x - любая версия, которая вам нужна)
  • установить Python 3.x(x - любая версия, которая вам нужна, и вы должны иметь одну версию 3.x >= 3.3)
  • открыть Командная строка
  • type py -2.x для запуска Python 2.x
  • введите py -3.x, чтобы запустить Python 3.x

Ответ 5

Я использую 2.5, 2.6 и 3.0 из оболочки с одним строчным сценарием формы:

:: The @ symbol at the start turns off the prompt from displaying the command.
:: The % represents an argument, while the * means all of them.
@c:\programs\pythonX.Y\python.exe %*

Назовите их pythonX.Y.bat и поместите их где-нибудь в свой PATH. Скопируйте файл для предпочтительной младшей версии (то есть последней) на pythonX.bat. (Например, copy python2.6.bat python2.bat.) Затем вы можете использовать python2 file.py из любого места.

Однако это не помогает или даже не влияет на ситуацию с файловой ассоциацией Windows. Для этого вам понадобится программа запуска, которая читает строку #!, а затем связывается с файлами .py и .pyw.

Ответ 6

Когда вы добавляете обе переменные окружения, возникает конфликт, потому что два исполняемых файла имеют одно и то же имя: python.exe.

Просто переименуйте один из них. В моем случае я переименовал его в python3.exe.

Поэтому, когда я запускаю python он выполняет python.exe который составляет 2.7, а когда я запускаю python3 он выполняет python3.exe который составляет 3.6.

enter image description here

Ответ 7

Здесь вы идете...

winpylaunch.py ​​

#
# Looks for a directive in the form: #! C:\Python30\python.exe
# The directive must start with #! and contain ".exe".
# This will be assumed to be the correct python interpreter to
# use to run the script ON WINDOWS. If no interpreter is
# found then the script will be run with 'python.exe'.
# ie: whatever one is found on the path.
# For example, in a script which is saved as utf-8 and which
# runs on Linux and Windows and uses the Python 2.6 interpreter...
#
#    #!/usr/bin/python
#    #!C:\Python26\python.exe
#    # -*- coding: utf-8 -*-
#
# When run on Linux, Linux uses the /usr/bin/python. When run
# on Windows using winpylaunch.py it uses C:\Python26\python.exe.
#
# To set up the association add this to the registry...
#
#    HKEY_CLASSES_ROOT\Python.File\shell\open\command
#    (Default) REG_SZ = "C:\Python30\python.exe" S:\usr\bin\winpylaunch.py "%1" %*
#
# NOTE: winpylaunch.py itself works with either 2.6 and 3.0. Once
# this entry has been added python files can be run on the
# commandline and the use of winpylaunch.py will be transparent.
#

import subprocess
import sys

USAGE = """
USAGE: winpylaunch.py <script.py> [arg1] [arg2...]
"""

if __name__ == "__main__":
  if len(sys.argv) > 1:
    script = sys.argv[1]
    args   = sys.argv[2:]
    if script.endswith(".py"):
      interpreter = "python.exe" # Default to wherever it is found on the path.
      lines = open(script).readlines()
      for line in lines:
        if line.startswith("#!") and line.find(".exe") != -1:
          interpreter = line[2:].strip()
          break
      process = subprocess.Popen([interpreter] + [script] + args)
      process.wait()
      sys.exit()
  print(USAGE)

Я только что сбил это с чтения этой нити (потому что это то, что мне тоже нужно). У меня есть Python 2.6.1 и 3.0.1 на Ubuntu и Windows. Если это не работает для исправлений после публикации.

Ответ 8

Насколько я знаю, Python убегает от командной строки, используя переменную PATH, в отличие от настройки реестра.

Итак, если вы укажете на правильную версию своего PATH, вы будете использовать это. Не забудьте перезапустить командную строку, чтобы использовать новые настройки PATH.

Ответ 9

Установка Python обычно связывает файлы .py, .pyw и .pyc с интерпретатором Python. Таким образом, вы можете запускать Python script либо путем двойного щелчка по нему в проводнике, либо путем ввода его имени в окне командной строки (поэтому не нужно вводить python scriptname.py, просто scriptname.py будет делать).

Если вы хотите вручную изменить эту связь, вы можете редактировать эти ключи в реестре Windows:

HKEY_CLASSES_ROOT\Python.File\shell\open\command
HKEY_CLASSES_ROOT\Python.NoConFile\shell\open\command
HKEY_CLASSES_ROOT\Python.CompiledFile\shell\open\command

Пусковая установка Python

Люди работают над пусковой установкой Python для Windows: легкая программа, связанная с файлами .py и .pyw, которые будут искать линию "shebang" (аналогично Linux и др.) в первой строке и запускать Python 2.x или 3.x по мере необходимости. Подробнее см. "Python Launcher for Windows" в блоге.

Ответ 10

Попробуйте использовать Анаконду.

Используя концепцию сред Anaconda, предположим, что вам нужен Python 3 для изучения программирования, но вы не хотите уничтожать свою среду Python 2.7 путем обновления Python. Вы можете создать и активировать новую среду с именем "snakes" (или что угодно) и установить последнюю версию Python 3 следующим образом:

conda create --name snakes python=3

Это проще, чем кажется, взгляните на вступительную страницу здесь: Начало работы с Anaconda

А затем для решения вашей конкретной проблемы, связанной с параллельной работой версий 2.x и 3.x, см. Управление версиями Python с помощью Anaconda.

Ответ 11

Вот как запустить Python 2 и 3 на одном компьютере

  •  
  • установить Python 2.x
  • установить Python 3.x  
  • Запустить программу Powershell  
  • Введите Python -2, чтобы запустить Python 2.x
  • Введите Python -3, чтобы запустить Python 2.x

Python Launcher для Windows был встроен в Python с версии 3.3, как и было обещано в 2011 году, когда Stand-on впервые дебютировал:

Пусковая установка Python для Windows

Ответ 12

Прежде чем я мужественно установил оба одновременно, у меня было так много вопросов. Если я дам python, он перейдет к py3, когда я хочу py2? pip/virtualenv произойдет под py2/3?

Теперь это выглядит очень просто.

Просто слепо установите их оба. Убедитесь, что вы получили нужный тип (x64/x32). Во время/после установки убедитесь, что вы добавили путь к переменным среды .

[ENVIRONMENT]::SETENVIRONMENTVARIABLE("PATH", "$ENV:PATH;C:\PYTHONx", "USER")

Заменить x в приведенной выше команде, чтобы установить путь.

Затем перейдите в обе папки.

Перейдите к

python3.6/Scripts/

и переименуйте pip в pip3.

Если pip3 уже существует, удалите пип. Это позволит убедиться, что только пип будет работать под python2. Вы можете проверить:

pip --version

Если вы хотите использовать pip с python3, просто используйте

pip3 install 

Аналогично можно сделать то же самое с файлом python и другими.

Ура!

Ответ 13

Я думаю, что есть возможность настроить ассоциацию файлов Windows для .py файлов в установщике. Снимите флажок, и все будет в порядке.

Если нет, вы можете легко связать файлы .py с предыдущей версией. Самый простой способ - щелкнуть правой кнопкой мыши на .py файле, выбрать "открыть с помощью" / "выбрать программу". В появившемся диалоговом окне выберите или просмотрите версию python, которую вы хотите использовать по умолчанию, и установите флажок "Всегда использовать эту программу, чтобы открыть этот тип файла".

Ответ 14

Вы должны убедиться, что переменная среды PATH не содержит файлы python.exe(добавьте ту, которую вы в настоящее время используете для запуска сценариев на ежедневной основе), или сделайте так, как предложила Kniht с пакетными файлами, Кроме того, я не понимаю, почему нет.

P.S: У меня 2.6 установлен как мой "первичный питон и 3.0 в качестве моего " пика ". 2.6 включен в PATH. Все работает нормально.

Ответ 15

Easy-peasy, после установки обеих версий python добавьте пути к переменным окружения, см. environment variable settings. Затем перейдите к папкам python 2 и python 3 и переименуйте их в python2 и python3 соответственно, как показано here for python2 и here for python3. Теперь в cmd введите python2 или python3, чтобы использовать требуемую версию, см. here.

Ответ 16

Я бы предположил, что у меня есть Python 2.4, 2.5 и 2.6, установленные бок о бок на том же компьютере.

Ответ 17

Я только начинаю с python. Я читаю книгу Zed Shaw "Изучай Python Hard Way", для которой требуется версия python 2.x, но я также беру класс, для которого требуется python 3.x

Итак, вот что я сделал.

  • Загрузить python 2.7
  • запустить силовую оболочку (она уже должна быть установлена ​​на windows)
  • запустите python IN POWERSHELL (если он не распознает, перейдите к шагу 4)
  • Только если powershell не распознает тип python 2.7 следующим образом:

"[ОКРУЖАЮЩАЯ СРЕДА]:: SETENVIRONMENTVARIABLE (" PATH "," $ENV: PATH; C:\PYTHON27 "," USER ")" (без внешних кавычек)

  1. Теперь введите python и вы увидите, что он говорит python 2.7 blah blah blah

СЕЙЧАС для python 3.x

Простая, загрузка python 3.x поставляется с python для приложения Windows. Просто просто прикрепите приложение Python для Windows к панели задач или создайте ярлык для рабочего стола, и все готово!

Откройте Python для Windows для 3.x

Open Powershell для python 2.x

Надеюсь, это поможет!

Ответ 18

Хм... Я сделал это прямо сейчас, просто скачав Python 3.6.5 для Windows по адресу https://www.python.org/downloads/release/python-365/ и убедился, что программа запуска будет установлена. Затем я следовал инструкциям по использованию python 2 и python 3. Перезапустите командную строку и затем используйте py -2.7 для использования Python 2 и py или py -3.6 для использования Python 3. Вы также можете использовать pip2 для Python 2 pip и pip для Python 3 pip.

Ответ 19

Вот аккуратный и чистый способ установки Python2 & Python3 на Windows.

https://datascience.com.co/how-to-install-python-2-7-and-3-6-in-windows-10-add-python-path-281e7eae62a

Мой случай: Мне пришлось установить Apache Cassandra. Я уже установил Python3 на диск D:. Из-за множества работ по разработке я не хотел испортить мою установку Python3. И мне нужен был Python2 только для Apache Cassandra.

Поэтому я предпринял следующие шаги:

  1. Скачано & Установленный Python2.
  2. Добавлены записи Python2 в classpath (C:\Python27;C:\Python27\Scripts)
  3. Изменен python.exe для python2.exe (как показано на рисунке ниже)

enter image description here

  1. Теперь я могу запустить оба. Для Python 2 (python2 --version) & Питон 3 (python --version). enter image description here

Итак, моя установка Python3 осталась без изменений.