Могу ли я установить 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
а также бессмысленные злоупотребления
Ответ 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 добавьте пути к переменным окружения, см.
. Затем перейдите к папкам python 2 и python 3 и переименуйте их в python2 и python3 соответственно, как показано
и
. Теперь в cmd введите python2 или python3, чтобы использовать требуемую версию, см.
.
Ответ 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 ")"
(без внешних кавычек)
- Теперь введите 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.
Поэтому я предпринял следующие шаги:
- Скачано & Установленный Python2.
- Добавлены записи Python2 в classpath (
C:\Python27;C:\Python27\Scripts
)
- Изменен python.exe для python2.exe (как показано на рисунке ниже)
![enter image description here]()
- Теперь я могу запустить оба. Для Python 2 (
python2 --version
) & Питон 3 (python --version
).
![enter image description here]()
Итак, моя установка Python3 осталась без изменений.