3. 在 Windows 上使用 Python — Python 文档

来自菜鸟教程
Python/docs/2.7/using/windows
跳转至:导航、​搜索

3. 在 Windows 上使用 Python

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

3.1. 安装 Python

与大多数 Unix 系统和服务不同,Windows 本身不需要 Python,因此不会预先安装 Python 版本。 但是,多年来,CPython 团队在每个 版本 中都编译了 Windows 安装程序(MSI 包)。

随着 Python 的不断发展,一些以前支持的平台已经不再支持(由于缺少用户或开发人员)。 检查 PEP 11 以了解所有不受支持的平台的详细信息。

  • 自 Python 2.0 起不推荐使用 DOS 和 Windows 3.x,并且在 Python 2.1 中删除了特定于这些系统的代码。
  • 在 2.5 之前,Python 仍然与 Windows 95、98 和 ME 兼容(但在安装时已经提出了弃用警告)。 对于 Python 2.6(以及所有后续版本),此支持已被取消,新版本预计仅适用于 Windows NT 系列。
  • Windows CE 仍然支持。
  • Cygwin 安装程序也提供了安装 Python 解释器的功能(cf. Cygwin 包源维护者发布)

有关带有预编译安装程序的平台的详细信息,请参阅 Python for Windows(和 DOS)

也可以看看

XP 上的 Python
“7 分钟到“Hello World!”,理查德·杜林 (Richard Dooling),2006 年
在 Windows 上安装
在“深入 Python:Python 从新手到专业 ”,Mark Pilgrim,2004 年,ISBN 1-59059-356-1
对于 Windows 用户
在 Swaroop CH 的“A Byte of Python”中的“Installing Python”中,2003 年


3.2. 替代捆绑包

除了标准的 CPython 发行版,还有包含附加功能的修改包。 以下是流行版本及其主要功能的列表:

活动Python
具有多平台兼容性的安装程序、文档、PyWin32
深思熟虑的 Python 发行版
流行的模块(如 PyWin32)及其各自的文档、用于构建可扩展 Python 应用程序的工具套件

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


3.3. 配置 Python

为了完美地运行 Python,您可能需要更改 Windows 中的某些环境设置。

3.3.1. 附注:设置环境变量

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

简而言之,您的路径是:

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


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

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

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

要使此设置永久有效,您可以将相应的命令行添加到 autoexec.batmsconfig 是这个文件的图形界面。

查看环境变量也可以更直接地完成:命令提示符将自动扩展包装成百分号的字符串:

echo %PATH%

有关此行为的详细信息,请参阅 set /?

也可以看看

https://support.microsoft.com/kb/100843
Windows NT 中的环境变量
https://support.microsoft.com/kb/310519
如何在 Windows XP 中管理环境变量
https://www.chem.gla.ac.uk/~louis/software/faq/q1.html
设置环境变量,Louis J. 法鲁贾


3.3.2. 查找 Python 可执行文件

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

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

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


3.3.3. 寻找模块

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

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

  • 在开始处添加一个空条目,它对应于当前目录。
  • 如果环境变量 PYTHONPATH 存在,如 环境变量 中所述,接下来添加其条目。 请注意,在 Windows 上,此变量中的路径必须用分号分隔,以将它们与驱动器标识符(C:\ 等)中使用的冒号区分开来。
  • 可以在注册表中添加额外的“应用程序路径”作为 HKEY_CURRENT_USERHKEY_LOCAL_MACHINE 配置单元下的 \SOFTWARE\Python\PythonCore{version}\PythonPath 的子项。 以分号分隔的路径字符串作为默认值的子项将导致每个路径都被添加到 sys.path。 (请注意,所有已知的安装程序仅使用 HKLM,因此 HKCU 通常为空。)
  • 如果设置了环境变量 PYTHONHOME,则假定为“Python Home”。 否则,主 Python 可执行文件的路径用于定位“地标文件”(Lib\os.py)以推断“Python Home”。 如果找到 Python home,则添加到 sys.pathLibplat-win 等)的相关子目录基于该文件夹。 否则,核心 Python 路径是根据存储在注册表中的 PythonPath 构建的。
  • 如果找不到 Python Home,环境中没有指定 PYTHONPATH,也找不到注册表项,则使用带有相对项的默认路径(例如 .\Lib;.\plat-win 等)。

这一切的最终结果是:

  • 当运行 python.exe 或 Python 主目录(安装版本或直接从 PCbuild 目录)中的任何其他 .exe 时,会推导出核心路径,并忽略注册表中的核心路径。 注册表中的其他“应用程序路径”总是被读取。
  • 当 Python 托管在另一个 .exe 中(不同的目录,通过 COM 嵌入等)时,将不会推导出“Python Home”,因此使用来自注册表的核心路径。 注册表中的其他“应用程序路径”总是被读取。
  • 如果 Python 找不到它的家并且没有注册表(例如,冻结的 .exe,一些非常奇怪的安装设置),您将获得一个带有一些默认但相对路径的路径。


3.3.4. 执行脚本

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

您还可以使用 pythonw.exe 执行所有 .py 脚本,例如通过常用工具进行设置(可能需要管理权限):

  1. 启动命令提示符。

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

    assoc .py=Python.File
  3. 将所有 Python 文件重定向到新的可执行文件:

    ftype Python.File=C:\Path\to\pythonw.exe "%1" %*


3.4. 附加模块

尽管 Python 的目标是在所有平台之间可移植,但仍有 Windows 独有的功能。 标准库和外部的几个模块和代码片段都可以使用这些功能。

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

3.4.1. pywin32

Mark Hammond 的 PyWin32 模块是一组用于高级 Windows 特定支持的模块。 这包括以下实用程序:

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

也可以看看

Win32 我如何...?
通过蒂姆·戈登
Python 和 COM
大卫和保罗博迪


3.4.2. py2exe

Py2exe 是一个 distutils 扩展(参见 Extending Distutils),它将 Python 脚本包装成可执行的 Windows 程序(*.exe 文件)。 完成此操作后,您无需用户安装 Python 即可分发应用程序。


3.4.3. 康尼奥

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

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


3.5. 在 Windows 上编译 Python

如果你想自己编译 CPython,你应该做的第一件事就是获取 源代码 。 您可以下载最新版本的源代码,也可以直接获取新的 checkout

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

目录 MSVC版本 Visual Studio 版本
PC/VC6/ 6.0 97
PC/VS7.1/ 7.1 2003
PC/VS8.0/ 8.0 2005
PCbuild/ 9.0 2008

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

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

对于扩展模块,请参阅 在 Windows 上构建 C 和 C++ 扩展

也可以看看

Python + Windows + distutils + SWIG + gcc MinGW
或“使用 SWIG 在 C/C++ 中创建 Python 扩展并在 Windows 下使用 MinGW gcc 编译它们”或“使用 distutils 和不使用 Microsoft Visual C++ 安装 Python 扩展”,Sébastien Sauvage,2003
MingW – Python 扩展
作者:Trent Apted 等人,2007 年


3.6. 其他资源

也可以看看

Win32上的Python编程
“Windows 程序员帮助”作者:Mark Hammond 和 Andy Robinson,O'Reilly Media,2000 年,ISBN 1-56592-621-8
适用于 Windows 的 Python 教程
阿曼达伯明翰,2004