Изменить интерпретатор 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
Другие вопросы по тегам