与大多数Unix系统和服务不一样,Windows不须要Python本地,所以不预安装一个版本的Python。可是,CPython团队已经为每一个版本编译Windows安装程序(MSI软件包)多年。php
随着Python的不断发展,一些之前被支持的平台再也不受支持(因为缺少用户或开发人员)。检查PEP 11有关全部不受支持的平台的详细信息。html
有关 具备预编译安装程序的平台的详细信息,请参阅Python for Windows。python
也能够看看web
除了标准的CPython分发以外,还有包含附加功能的修改包。如下是热门版本及其主要功能的列表:编程
请注意,这些包极可能安装旧版本的Python。windows
为了无瑕疵地运行Python,您可能须要在Windows中更改某些环境设置。python2.7
Windows具备用于更改环境变量的内置对话框(如下指南适用于XP经典视图):右键单击计算机的图标(一般位于桌面上并称为“个人计算机”),而后选择 ide
总之,你的路径是:函数
在此对话框中,您能够添加或修改用户和系统变量。要更改系统变量,您须要对计算机进行非受限访问(即管理员权限)。工具
将变量添加到环境的另外一种方法是使用set 命令:
设置PYTHONPATH =%PYTHONPATH%; C:\ My_python_lib
要使此设置永久,您能够将相应的命令行添加到您的autoexec.bat
。msconfig是此文件的图形界面。
查看环境变量也能够更直接地执行:命令提示符将自动扩展包装成百分号的字符串:
echo%PATH%
咨询集/?有关此行为的详细信息。
也能够看看
更改版本3.3。
除了使用自动建立的Python解释器的开始菜单项,您可能须要在命令提示符下启动Python。从Python 3.3开始,安装程序有一个选项为您设置。
在“自定义Python 3.3”屏幕上,能够启用一个名为“将python.exe添加到搜索路径”的选项,让安装程序将您的安装程序放入 %PATH%
。这容许你键入python来运行解释器。所以,您还可使用命令行选项执行脚本,请参阅命令行文档。
若是在安装时未启用此选项,则能够随时从新运行安装程序以进行选择。
另外一种方法是手动修改 %PATH%
使用Excursus中的说明:设置环境变量。你须要设置你的%PATH%
环境变量包括Python分发包的目录,由来自其余条目的分号分隔。一个示例变量可能以下所示(假设前两个条目是Windows的默认值):
C:\ WINDOWS \ system32; C:\ WINDOWS; C:\ Python33
Python一般将其库(以及从而您的site-packages文件夹)存储在安装目录中。因此,若是你已经安装了Python C:\Python\
,默认库将驻留在C:\Python\Lib\
第三方模块应该存储在 C:\Python\Lib\site-packages\
。
这是如何sys.path
填充在Windows:
PYTHONPATH
存在,如环境变量中 所述,其条目将添加到下一个。请注意,在Windows上,此变量中的路径必须用分号分隔,以便与驱动器标识符(C:\
等)中使用的冒号区分开。\SOFTWARE\Python\PythonCore\version\PythonPath
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
sys.path
PYTHONHOME
设置,它被假定为“Python Home”。不然,主Python可执行文件的路径用于定位一个“地标文件”(Lib\os.py
)来推导“Python Home”。若是找到一个Python家,相关子目录加入到sys.path
(Lib
,plat-win
等)都是基于该文件夹上。不然,核心Python路径是从存储在注册表中的PythonPath构造的。PYTHONPATH
在环境中指定,而且没有找到注册表条目,则使用具备相对条目的默认路径(例如.\Lib;.\plat-win
,等)。这一切的最终结果是:
python.exe
或主Python目录中的任何其余.exe(安装的版本,或直接从PCbuild目录),核心路径被推导,而且注册表中的核心路径被忽略。注册表中的其余“应用程序路径”老是被读取。从Python 3.3开始,Python包括一个启动器,它有助于运行Python脚本。有关详细信息,请参阅Python Launcher for Windows。
没有安装Python启动程序,Python脚本(带有扩展名的文件 .py
)将由python.exe默认执行。此可执行文件打开一个终端,即便程序使用GUI,该终端仍保持打开。若是你不想发生这种状况,使用扩展.pyw
,这将致使脚本由pythonw.exe默认状况下(两个可执行文件都位于Python安装目录的顶层)。这将禁止启动时的终端窗口。
你也能够.py
使用pythonw.exe执行全部脚本,例如(可能须要管理权限)经过经常使用的工具来设置它:
启动命令提示符。
将正确的文件组与.py
脚本相关联:
assoc .py = Python.File
将全部Python文件重定向到新的可执行文件:
ftype Python.File = C:\ Path \ to \ pythonw.exe“%1”%*
新版本3.3。
Windows的Python启动器是一个实用程序,它能够帮助定位和执行不一样的Python版本。它容许脚本(或命令行)指示特定Python版本的首选项,并将定位和执行该版本。
你应该确保启动器在你的PATH - 根据它的安装它可能已经在那里,但检查,以防万一它不是。
从命令提示符处,执行如下命令:
py
你应该发现你安装的最新版本的Python 2.x已经启动了 - 它能够正常退出,任何额外的命令行参数指定将直接发送到Python。
若是您安装了多个版本的Python 2.x(例如,2.6和2.7),您将注意到Python 2.7已经启动 - 要启动Python 2.6,请尝试如下命令:
py -2.6
若是您安装了Python 3.x,请尝试如下命令:
py -3
你应该找到最新版本的Python 3.x启动。
让咱们建立一个测试Python脚本 - 建立一个hello.py
用如下内容调用的文件
#!蟒蛇
import sys
sys.stdout.write(“hello from Python%s \ n”%(sys.version,))
从hello.py所在的目录中,执行命令:
py hello.py
您应该注意到,打印了最新的Python 2.x安装的版本号。如今尝试改变第一行为:
#!python3
从新执行命令如今应该打印最新的Python 3.x信息。与上面的命令行示例同样,您能够指定更明确的版本限定符。假设你安装了Python 2.6,尝试改变第一行,你应该找到打印的2.6版本信息。#! python2.6
启动程序应该已与Python的文件关联(即.py
, .pyw
,.pyc
,.pyo
文件)安装时。这意味着,当您从Windows资源管理器中双击其中一个文件时,将使用启动器,所以您可使用上述相同的工具来让脚本指定应使用的版本。
这样作的主要好处是,单个启动器能够同时支持多个Python版本,具体取决于第一行的内容。
若是脚本文件的第一行开头#!
,它被称为“shebang”行。Linux和其余相似Unix的操做系统本地支持这样的行,而且一般在这样的系统上使用以指示如何执行脚本。此启动器容许相同的设施在Windows上使用Python脚本,上面的示例演示了它们的用法。
要容许Python脚本中的shebang行在Unix和Windows之间移植,此启动器支持多个“虚拟”命令来指定要使用的解释器。支持的虚拟命令是:
/usr/bin/env python
/usr/bin/python
/usr/local/bin/python
python
例如,若是脚本的第一行以
#!/ usr / bin / python
将定位和使用默认的Python。因为许多Python脚本编写的工做在Unix上已经有这一行,你应该发现这些脚本能够由启动器使用没有修改。若是你正在Windows上编写一个新的脚本,你但愿在Unix上有用,你应该使用一个shebang行开始/usr
。
shebang行还能够指定要传递给Python解释器的其余选项。例如,若是你有一个shebang行:
#!/ usr / bin / python -v
而后Python将开始使用该-v
选项
两个.ini文件将由
py.ini
当前用户的“应用程序数据”目录(即,经过调用带有CSIDL_LOCAL_APPDATA的Windows函数SHGetFolderPath返回的目录)和py.ini
与启动器相同的目录中的启动器搜索。相同的.ini文件用于'控制台'版本的启动器(即py.exe)和'windows'版本(即pyw.exe)在“应用程序目录”中指定的自定义将优先于可执行文件旁边的一个,所以可能没有对启动器旁边的.ini文件具备写访问权的用户能够覆盖该全局.ini文件中的命令)
在某些状况下,能够在命令中包括版本限定符,以指示命令将使用哪一个版本的Python。版本限定符以主版本号开头,能够选择性地后跟句点('。')和次要版本说明符。若是指定了minor限定符,则能够可选地后跟“-32”,以指示使用该版本的32位实现。
例如,shebang行#!python
没有版本限定符,而 #!python3
有一个版本限定符只指定主版本。
若是在命令中未找到版本限定符,则PY_PYTHON
能够将环境变量 设置为指定默认版本限定符 - 默认值为“2”。注意,该值能够仅指定主版本(例如“2”)或major.minor限定符(例如“2.6”),或甚至major.minor-32。
若是未找到次版本限定符,则能够将环境变量 PY_PYTHON{major}
(其中{major}
是上面肯定的当前主版本限定符)设置为指定完整版本。若是没有找到这样的选项,启动器将枚举已安装的Python版本,并使用为主要版本找到的最新次要版本,尽管不能保证,但多是该系列中最近安装的版本。
在安装了相同(major.minor)Python版本的32位和64位实现的64位Windows上,64位版本将始终是首选。这对于32位和64位的启动器实现都是正确的--32位启动器将更喜欢执行指定版本的64位Python安装(若是可用)。这是由于能够预测启动器的行为只知道什么版本安装在PC上,而不考虑它们被安装的顺序(即,不知道32或64位版本的Python和相应的启动器是最后安装)。如上所述,能够在版本说明符上使用可选的“-32”后缀来更改此行为。
例子:
python
和 python2
将使用安装了最新的Python 2.x的版本,并命令python3
将使用安装最新的Python 3.x的。python3.1
和python2.7
将不会咨询任何选项,由于版本彻底指定。PY_PYTHON=3
,命令python
和python3
都将使用最新安装的Python 3版本。PY_PYTHON=3.1-32
,命令python
将使用3.1的32位实现,而命令python3
将使用最新安装的Python(PY_PYTHON根本没有被考虑做为主要版本被指定。)PY_PYTHON=3
和PY_PYTHON3=3.1
,命令 python
和python3
将都特别使用3.1除了环境变量,能够在启动器使用的.INI文件中配置相同的设置。调用INI文件中的部分,[defaults]
而且键名称将与没有前导PY_
前缀的环境变量相同(并注意INI文件中的键名称不区分大小写。)环境变量的内容将覆盖指定的在INI文件中。
例如:
PY_PYTHON=3.1
等效于INI文件,其中包含:[默认]
python = 3.1
PY_PYTHON=3
并PY_PYTHON3=3.1
等效于INI文件包含:[默认]
python = 3
python3 = 3.1
若是PYLAUNCH_DEBUG
设置了环境变量(到任何值),启动程序将打印诊断信息到stderr(即到控制台)。虽然这些信息同时冗长和简洁,但它应该可让你看到Python的版本是什么,为何选择一个特定的版本,以及用于执行目标Python的精确命令行。
即便Python的目标是在全部平台之间移植,有一些Windows独有的功能。存在几个模块,在标准库和外部和片断中使用这些功能。
Windows特定标准模块记录在 MS Windows特定服务中。
该PyWin32模块由Mark哈蒙德是先进的Windows特定的支持模块的集合。这包括如下工具:
PythonWin是PyWin32附带的示例MFC应用程序。它是一个带有内置调试器的可嵌入IDE。
也能够看看
cx_Freeze是一个distutils
扩展(参见扩展Distutils),它将Python脚本包装到可执行的Windows程序(文件)中。当你这样作,你能够分发你的应用程序,而不须要你的用户安装Python。*.exe
若是你想本身编译CPython,首先你应该作的是获取 源代码。您能够下载最新版本的来源或只是抓一个新的结账。
源代码树包含Microsoft Visual C ++的构建解决方案和项目文件,这是用于构建官方Python版本的编译器。查看readme.txt
在他们各自的目录:
目录 | MSVC版本 | Visual Studio版本 |
---|---|---|
PC/VS9.0/ |
9.0 | 2008年 |
PCbuild/ |
10.0 | 2010 |
请注意,目录中的任何构建目录PC
不必定彻底支持。该PCbuild
目录包含用于构建正式版本的编译器的文件。
检查PCbuild/readme.txt
构建过程的通常信息。
有关扩展模块,请参阅Windows上的Building C和C ++扩展。
也能够看看
也能够看看