更改Windows XP上的默认Python解释器

更改Windows XP上的默认Python解释器,python,django,version,Python,Django,Version,我有两个python版本:Python2.5和Python2.7。在设置django时,我想使用Python2.7,但django以某种方式使用Python2.5 如何确保django使用Python 2.7?我正在使用Windows XP更改PATH系统环境变量以指向您要使用的Python版本。如果您总是直接调用Python,而不是依赖于 文件关联 例如:“python foo.py”将使用路径上最先出现的python运行“foo”脚本 但是,如果您只是运行“foo.py”,那么注册表中与此文

我有两个python版本:Python2.5和Python2.7。在设置django时,我想使用Python2.7,但django以某种方式使用Python2.5


如何确保django使用Python 2.7?我正在使用Windows XP

更改PATH系统环境变量以指向您要使用的Python版本。

如果您总是直接调用Python,而不是依赖于 文件关联

例如:
“python foo.py”
将使用路径上最先出现的python运行“foo”脚本

但是,如果您只是运行
“foo.py”
,那么注册表中与此文件扩展名关联的处理程序将是第一个调用的处理程序

在您的例子中,听起来像是Python2.5。打开regedit并检查 价值观:

HKEY_CLASSES_ROOT\Python.File\shell\open\command
列出的(默认)值可能类似于
“C:\Python25\python.exe”“%1”%*

对您来说,一个快速(而且不干净?)的修复方法是将这些值更改为您实际需要的python版本

更好的修复方法是执行此功能请求中概述的操作:


从那时起,只要您拥有管理员权限,您就可以根据需要快速切换到所需的版本。

制作两个简单的.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安装程序不会更改windows下的PATH环境变量。 键入类似于
python setup.py的内容时,windows首先在PATH中查找python,然后在当前用户注册表配置单元中查找python

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe
然后在本地机器注册表配置单元中

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实用程序最简单,如下所述:

它允许您使用UNIX风格的指令在脚本文件中指定Python版本。还有命令行和环境变量选项用于控制运行哪个版本的Python


获取此实用程序的最简单方法是安装Python 3.3或更高版本。

HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command

若您想在Python2.x和Python3.x之间切换,那个么最简单的方法就是使用自3.3版本以来包含的。这基本上是Windows文件夹中的py.exe。要启动Python3.x命令提示符,只需键入

py -3
要使用Python3.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,))

顺便说一句,快速找到python文件扩展名的处理程序:
ftype | find/I“python”
此答案提供了有关查找与.py关联的内容的更多详细信息,shitalshah答案更为最新:请注意,这不会更改文件扩展名关联。我想补充的是,您可以更改py.exe位置中包含的py.ini文件中的默认值