3. 在 Windows 上使用 Python

本文档旨在概述您在 Microsoft Windows 上使用 Python 时应了解的 Windows 特定行为。

3.1. 安装 Python

与大多数 Unix 系统和服务不同,Windows 本身不需要 Python,因此不会预安装 Python 版本。但是,CPython 团队多年来一直用release编译 Windows 安装程序(MSI 软件包)。

随着 Python 的不断开发,不再支持某些以前受支持的平台(由于缺少用户或开发人员)。在 PEP 11上查看有关所有不受支持的平台的详细信息。

  • 自 Python 2.1 删除了 Python 2.0 和特定于这些系统的代码以来,不推荐使用 DOS 和 Windows3.x。

  • 直到 2.5,Python 仍与 Windows 95、98 和 ME 兼容(但已在安装时提出了弃用警告)。对于 Python 2.6(及所有后续发行版),该支持已删除,新发行版仅可在 Windows NT 家族中使用。

  • 仍然支持Windows CE

  • Cygwin安装程序还提供了安装 Python 解释程序的Function(请参阅Cygwin 包源码Maintainer releases)

有关具有预编译安装程序的平台的详细信息,请参见适用于 Windows(和 DOS)的 Python

See also

3.2. 替代 Binding

除了标准的 CPython 发行版之外,还有一些经过修改的软件包,其中包括其他Function。以下是受欢迎版本及其主要Function的列表:

  • ActivePython

    • 具有多平台兼容性的安装程序,文档,PyWin32
  • 热情的 Python 发行版

    • 流行的模块(例如 PyWin32)及其各自的文档,用于构建可扩展 Python 应用程序的工具套件

请注意,这些软件包可能会安装 Python 的版本。

3.3. 配置 Python

为了完美运行 Python,您可能必须在 Windows 中更改某些环境设置。

3.3.1. 总结:设置环境变量

Windows 有一个用于更改环境变量的内置对话框(以下指南适用于 XP 经典视图):右键单击计算机的图标(通常位于桌面上,并称为“我的电脑”),然后在此处选择“属性”。然后,打开“高级”选项卡,然后单击“环境变量”按钮。

简而言之,您的路径是:

Note

我的电脑‣属性‣高级‣环境变量

在此对话框中,您可以添加或修改用户和系统变量。要更改系统变量,您需要不受限制地访问您的计算机(即 Management 员权限)。

向环境添加变量的另一种方法是使用 set 命令:

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

要永久保留此设置,可以将相应的命令行添加到autoexec.batmsconfig 是此文件的图形界面。

查看环境变量也可以更加简单明了:命令提示符将自动展开包装成百分号的字符串:

echo %PATH%

有关此行为的详细信息,请参阅“设置/?**”。

See also

3.3.2. 查找 Python 可执行文件

除了使用自动为 Python 解释器创建的开始菜单项之外,您可能还想在 DOS 提示符下启动 Python。为此,您需要设置 %PATH%环境变量以包含 Python 发行版的目录,并以分号分隔其他条目。示例变量可能如下所示(假设前两个条目是 Windows 的默认值):

C:\WINDOWS\system32;C:\WINDOWS;C:\Python25

现在,在命令提示符下键入 python 将启动 Python 解释器。因此,您还可以使用命令行选项执行脚本,请参阅Command line文档。

3.3.3. 查找模块

Python 通常将其库(以及您的 site-packages 文件夹)存储在安装目录中。因此,如果您已将 Python 安装到C:\Python\,则默认库将位于C:\Python\Lib\,第三方模块应存储在C:\Python\Lib\site-packages\

这是在 Windows 上填充sys.path的方式:

  • 在开始处添加一个空条目,该条目对应于当前目录。

  • 如果存在环境变量 PYTHONPATH,如Environment variables中所述,则接下来添加其条目。请注意,在 Windows 上,此变量中的路径必须用分号分隔,以将其与驱动器标识符(C:\等)中使用的冒号区分开。

  • 可以在注册表中将其他“应用程序路径”添加为HKEY_CURRENT_USERHKEY_LOCAL_MACHINE配置单元下的\SOFTWARE\Python\PythonCore{version}\PythonPath子项。带有以分号分隔的路径字符串作为默认值的子项将导致将每个路径添加到sys.path。 (请注意,所有已知的安装程序仅使用 HKLM,因此 HKCU 通常为空.)

  • 如果设置了环境变量 PYTHONHOME,则将其假定为“ Python Home”。否则,将使用主 Python 可执行文件的路径来定位“地标文件”(Lib\os.py)以推断出“ Python 主页”。如果找到 Python 主页,则添加到sys.path的相关子目录(Libplat-win等)基于该文件夹。否则,将根据存储在注册表中的 PythonPath 构造核心 Python 路径。

  • 如果无法找到 Python 主目录,在环境中未指定 PYTHONPATH,并且找不到注册表项,则使用带有相对项的默认路径(例如.\Lib;.\plat-win等)。

所有这些的finally结果是:

  • 当在主 Python 目录(安装的版本,或直接从 PCbuild 目录)中运行python.exe或任何其他.exe 时,将推导出核心路径,并忽略注册表中的核心路径。注册表中的其他“应用程序路径”始终会被读取。

  • 当 Python 托管在另一个.exe(不同目录,pass COM 嵌入等)中时,将不会推断出“ Python Home”,因此将使用注册表的核心路径。注册表中的其他“应用程序路径”始终会被读取。

  • 如果 Python 找不到自己的家,并且没有注册表(例如,冻结的.exe,某些非常奇怪的安装设置),则您将获得带有默认但相对路径的路径。

3.3.4. 执行脚本

Python 脚本(extensions 为.py的文件)将默认由 python.exe 执行。该可执行文件将打开一个终端,即使该程序使用 GUI,该终端也将保持打开状态。如果您不希望这种情况发生,请使用 extensions.pyw,默认情况下,该脚本将由 pythonw.exe 执行(两个可执行文件均位于 Python 安装目录的顶层)。这样可以抑制启动时的终端窗口。

您还可以使所有.py脚本都使用 pythonw.exe 执行,例如,pass常规Function进行设置(可能需要 Management 权限):

  • 启动命令提示符。

  • 将正确的文件组与.py脚本相关联:

assoc .py=Python.File
  • 将所有 Python 文件重定向到新的可执行文件:
ftype Python.File=C:\Path\to\pythonw.exe "%1" %*

3.4. 附加模块

即使 Python 的目标是在所有平台之间都可移植,但 Windows 还是有一些独特的Function。标准库和外部库中都有几个模块,以及使用这些Function的代码段。

Windows 特定的标准模块记录在MS Windows 特定服务中。

3.4.1. PyWin32

Mark Hammond 的PyWin32模块是用于高级 Windows 特定支持的模块集合。这包括用于以下目的的 Util:

PythonWin是 PyWin32 附带的示例 MFC 应用程序。它是带有嵌入式调试器的可嵌入 IDE。

See also

3.4.2. Py2exe

Py2exedistutilsextensions(请参见Extending Distutils),它将 Python 脚本包装到可执行的 Windows 程序(*.exe文件)中。完成此操作后,您可以分发应用程序而无需用户安装 Python。

3.4.3. WConio

由于 Python 的高级终端处理层curses仅限于类 Unix 系统,因此还有 Windows 独有的库:适用于 Python 的 Windows 控制台 I/O。

WConio是 Turbo-C CONIO.H的包装,用于创建文本用户界面。

3.5. 在 Windows 上编译 Python

如果要自己编译 CPython,首先要做的就是获取source。您可以下载最新版本的源代码,也可以只下载一个新的checkout

对于 Microsoft Visual C(它是用于构建正式 Python 版本的编译器),源代码树包含解决方案/项目文件。在各自的目录中查看readme.txt

DirectoryMSVC versionVisual Studio 版本
PC/VC6/6.097
PC/VS7.1/7.12003
PC/VS8.0/8.02005
PCbuild/9.02008

请注意,并非所有这些构建目录都得到完全支持。阅读发行说明,以了解与您的版本一起使用的官方编译器版本。

检查PC/readme.txt以获取有关构建过程的一般信息。

有关扩展模块,请咨询在 Windows 上构建 C 和 C 扩展

See also

  • Python Windows distutils SWIG gcc MinGW

  • 或 SébastienSauvage 撰写的“使用 SWIG 在 C/C 中创建 Python 扩展并在 Windows 下使用 MinGW gcc 对其进行编译”或“使用 distutils 且不使用 Microsoft Visual C 来安装 Python 扩展”

  • MingW – Python 扩展

  • 由 Trent Apted 等人撰写,2007 年

3.6. 其他资源

See also