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

python windows python-3.x compatibility

181071 просмотра

19 ответа

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

Я хочу играть с Python 3, но при этом иметь возможность запускать сценарии 2.x на той же машине.

Автор: minty Источник Размещён: 11.11.2019 02:01

Ответы (19)


64 плюса

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

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

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

Все манеры Шебанга, кажется, работают

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

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

  • #! notepad.exe
Автор: Nick T Размещён: 08.11.2012 09:11

38 плюса

Вот мои настройки:

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

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

Автор: Alistair Martin Размещён: 25.08.2015 05:15

36 плюса

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

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

#!/bin/env python2.7

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

#!/bin/env python3.6

Обновить

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

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

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

Автор: Patrick Desjardins Размещён: 04.12.2008 04:29

33 плюса

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

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

  1. установить Python 2.x (x - любая нужная вам версия)
  2. установить Python 3.x (x - это любая версия, которая вам нужна, у вас должна быть одна версия 3.x> = 3.3)
  3. открыть командную строку
  4. введите py -2.x для запуска Python 2.x
  5. введите py -3.x для запуска Python 3.x
Автор: Ivan Kucerak Размещён: 29.06.2016 08:18

9 плюса

Я использую 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и поместите их где-нибудь в вашем ПУТИ. Скопируйте файл для предпочитаемой минорной версии (т.е. самой последней) в pythonX.bat. (Например copy python2.6.bat python2.bat.) Тогда вы можете использовать python2 file.pyиз любого места.

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

Автор: Roger Pate Размещён: 12.01.2009 06:26

8 плюса

При добавлении и переменной среда будет А конфликт , так как два исполняемыми имеют одинаковое имя: python.exe.

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

Таким образом, когда я запускаю, pythonон будет выполняться, python.exeкоторый составляет 2,7, а когда я бегу, python3он выполняет, python3.exeкоторый составляет 3,6

введите описание изображения здесь

Автор: Charif DZ Размещён: 19.10.2017 08:24

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)

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

Автор: Nev Размещён: 18.04.2009 01:45

4 плюса

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

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

Автор: James McMahon Размещён: 04.12.2008 04:29

3 плюса

Установка Python обычно ассоциируется .py, .pywи .pycфайлы с интерпретатором Python. Таким образом, вы можете запустить скрипт Python, дважды щелкнув его в проводнике, или введя его имя в окне командной строки (поэтому вводить не нужно 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 Launcher

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

Автор: Craig McQueen Размещён: 03.03.2009 12:57

3 плюса

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

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

conda create --name snakes python=3

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

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

Автор: Cale Sweeney Размещён: 16.05.2017 07:23

2 плюса

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

  1. установить Python 2.x
  2. установить Python 3.x
  3. Запустить Powershell
  4. Введите Python -2 для запуска Python 2.x
  5. Введите Python -3 для запуска Python 2.x

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

Python Launcher для Windows

Автор: rogerwamba Размещён: 03.01.2016 03:10

2 плюса

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

Кажется, сейчас все очень просто.

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

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

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

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

Перейдите к

python3.6/Scripts/

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

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

pip --version

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

pip3 install 

Вы можете сделать то же самое с файлом Python и другими.

Ура!

Автор: Shreyaa Sridhar Размещён: 12.03.2017 09:32

1 плюс

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

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

Автор: Brian Размещён: 04.12.2008 04:33

1 плюс

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

PS: у меня установлен 2.6 как «основной» python и 3.0 как «play» . 2.6 включен в ПУТЬ . Все отлично работает

Автор: Geo Размещён: 17.01.2009 04:53

1 плюс

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

Автор: nilakantha singh deo Размещён: 20.06.2019 03:11

0 плюса

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

Автор: user21037 Размещён: 04.12.2008 05:31

0 плюса

Я только начинаю с Python. Я читаю книгу Зеда Шоу «Изучите Python как трудный путь», для которой требуется Python версии 2.x, но я также беру класс, который требует Python 3.x

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

  1. Скачать Python 2.7
  2. запустить Power Shell (должен быть уже установлен на Windows)
  3. запустите python IN POWERSHELL (если он не распознает, перейдите к шагу 4)
  4. Только если powershell не распознает тип Python 2.7 в следующем:

"[ENVIRONMENT] :: SETENVIRONMENTVARIABLE (" PATH "," $ ENV: PATH; C: \ PYTHON27 "," USER ")" (без внешних кавычек)

  1. Теперь введите python, и вы должны увидеть, как он говорит Python 2.7 бла-бла-бла

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

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

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

Откройте Powershell для Python 2.x

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

Автор: Davidopopoplis Размещён: 07.02.2017 12:46

0 плюса

Хм ... Я сделал это прямо сейчас, просто загрузив 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.

Автор: FearlessFuture Размещён: 07.06.2018 01:37

0 плюса

Вот аккуратный и чистый способ установить 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 (как показано на рисунке ниже)

введите описание изображения здесь

  1. Теперь я могу запустить оба. Для Python 2 ( python2 --version) и Python 3 ( python --version). введите описание изображения здесь

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

Автор: Alex Размещён: 08.10.2019 11:49
Вопросы из категории :
32x32