Я принял бы так, мне установили Python 2.4, 2.5 и 2.6 бок о бок на том же компьютере.
Я использую 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 файлами.
Я думаю, что существует опция установить ассоциацию файлов окон для .py файлов в установщике. Снимите флажок с ним, и необходимо быть в порядке.
В противном случае можно легко повторно связать .py файлы с предыдущей версией. Самый простой путь состоит в том, чтобы щелкнуть правой кнопкой по .py файлу, выбрать "открытый с" / "выбирают программу". На диалоговом окне, которое появляется, выберите или просмотрите к версии Python, который Вы хотите использовать по умолчанию, и проверить "всегда использование эта программа для открытия этого вида файла" флажок.
Насколько я знаю, что Python убегает командной строки с помощью переменной ПУТИ в противоположность установке реестра.
Поэтому, если Вы указываете на правильную версию на своем ПУТИ на использование этого. Не забудьте перезапускать свою командную строку для использования новых настроек PATH.
Вот, пожалуйста ...
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. Если это не сработает, опубликуйте исправления здесь.
Необходимо удостовериться, что переменная окружения PATH не содержит оба файла python.exe (добавьте тот, который Вы в настоящее время используете для запущения скриптов на ежедневной основе), или сделайте как Kniht, предложенный с пакетными файлами. Кроме этого, я не вижу почему нет.
P.S.: у Меня есть 2,6 установленных как мой "основной" Python и 3.0 как мой "игра" Python. Эти 2.6 включены в ПУТЬ . Все хорошо работает.
Можно было оба установить.
необходимо записать это перед сценарием:
#!/bin/env python2.7
или, в конечном счете...
#!/bin/env python3.6
Мое решение работает отлично с Unix после быстрого поиска на Google , вот решение для Windows:
#!c:/Python/python3_6.exe -u
То же самое: перед Вашим сценарием.
Установка 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 для Windows: легкая программа связалась с .py
и .pyw
файлы, которые искали бы строку "хижины" (подобный Linux и др.) на первой строке и запустили бы Python 2.x или 3.x как требуется. См. "Средство запуска Python для Windows" сообщение в блоге для деталей.
Вот аккуратный и очевидный способ для установки Python2 & Python3 на окнах.
Мой случай: я должен был установить Apache cassandra. У меня уже было Python3, установленный в моем D: диск . С загрузками технической разработки при процессе я не сделал требуемый для питания моей установки Python3. И, мне был нужен Python2 только для Apache cassandra.
, Таким образом, я взял следующие шаги:
C:\Python27;C:\Python27\Scripts
) Так, моя установка Python3 осталась неповрежденной.