Изменить интерпретатор Python по умолчанию в Windows XP
У меня есть две версии Python: Python 2.5 и Python 2.7. Когда я настраиваю django, я хочу использовать Python 2.7, но django каким-то образом использует Python 2.5.
Как я могу убедиться, что django использует Python 2.7? Я использую Windows XP
7 ответов
Измените переменную системной среды PATH, указав версию Python, которую вы хотите использовать.
Изменение PATH поможет, если вы всегда вызываете python напрямую, а не полагаетесь на сопоставление файлов.
Например: "python foo.py"
запустит скрипт 'foo' с того, какой Python будет первым в вашем PATH.
Однако, если вы просто запустите "foo.py"
обработчик, связанный с реестром для этого расширения файла, будет первым вызванным.
В вашем случае это звучит так, как будто это Python 2.5. Посмотрите, открыв regedit и проверив значения:
HKEY_CLASSES_ROOT\Python.File\shell\open\command
Перечисленное значение (по умолчанию), вероятно, будет что-то вроде "C:\Python25\python.exe" "%1" %*
Быстрое (и грязное?) Исправление для вас - изменить эти значения на версию Python, которая вам действительно нужна.
Лучшим решением было бы сделать что-то вроде того, что указано в этом запросе:
http://bugs.python.org/issue4485
С тех пор, пока у вас есть права администратора, вы можете переключаться по мере необходимости, указав Assoc на нужную вам версию.
Создайте два простых.cmd файла:
python25.cmd:
@echo off
set PYTHONHOME=c:\python25
set PATH=%PATH%;c:\python25
python27.cmd:
@echo off
set PYTHONHOME=c:\python27
set PATH=%PATH%;c:\python27
Теперь вы можете переключаться между Python 2.5 и 2.7.:)
Установщик Python не изменяет переменную среды PATH в Windows. При наборе чего-то вроде python setup.py
Windows сначала ищет python в PATH, затем в кусте текущего реестра пользователей.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe
а потом в локальный улей реестра машины
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe
Теперь, когда выпущен Python 3.3, проще всего использовать описанную здесь утилиту py.exe: http://www.python.org/dev/peps/pep-0397/
Это позволяет вам указать версию Python в вашем файле скрипта, используя директиву стиля UNIX. Есть также параметры командной строки и переменных среды для управления тем, какая версия Python запускается.
Самый простой способ получить эту утилиту - это установить Python 3.3 или более позднюю версию.
Если вы хотите переключаться между Python 2.x и Python 3.x, то проще всего использовать Python Launcher, который включен с версии 3.3. Это в основном py.exe в папке Windows. Чтобы запустить командную строку Python 3.x, просто введите
py -3
Чтобы выполнить скрипт с Python 3.x, используйте
py -3 script.py
Если вы не укажете -3, то по умолчанию используется версия 2.x. Вы также можете сделать это явно, используя переключатель -2.7.
py -2.7 script.py
Наконец, теперь вы можете встроить номер версии для использования в самом файле.script. Это работает, потому что после установки Python 3.3+ он связывает py.exe с файлами.py.
#! python3
import sys
sys.stdout.write("hello from Python %s\n" % (sys.version,))
Изменить раздел реестра на
HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command