跳转到主要内容

Windows扩展的Python

项目描述

pywin32

CI PyPI - Version PyPI - Python Version PyPI - Downloads License - PSF-2.0


这是Python for Win32 (pywin32) 扩展的readme,它提供了从Python访问许多Windows API的能力。

请参阅CHANGES.txt以了解最近的重大更改。

文档

文档是一个漫长而悲伤的故事,但现在 有一个在线版本 的帮助文件,该文件随安装程序一起提供(感谢 @ofek!)。其中很多都是非常旧的,但一些是自动生成的且是当前的。希望有人能帮助整理文档!

支持

请随意提出问题,包括pywin32中所有错误(或疑似错误)。对于所有错误或新功能,也欢迎发起拉取请求

但是,请不要在github上提出python-win32邮件列表的通用支持请求,或者使用此包中模块的问题或疑问 - 这些问题将被关闭。对于此类问题,请通过电子邮件提出 - 注意,您必须在发布前订阅该列表。

二进制文件

不再支持二进制发布。

版本306是最后一个带有.exe安装程序的版本。您真的不应该使用它们,但如果您真的需要,可以在这里找到它们

通过pip安装

您应该通过pip安装pywin32 - 例如,

python -m pip install --upgrade pywin32

有一个安装后脚本(见下文),不应该在虚拟环境中运行;它只能在“全局”安装中运行。

对于未发布的变化,您可以下载由github actions制作的构建 - 从main分支中选择任何“工作流程”并下载其“工件”)

全局安装

在虚拟环境之外,您可能想要安装COM对象、服务等。您可以通过执行以下操作来完成此操作

python Scripts/pywin32_postinstall.py -install

从您的Python安装的根目录。

如果您以常规权限执行此操作,它将对您的用户全局(一些文件将被复制到Python安装的根目录,并对HKCU进行一些更改)。如果您以提升的进程执行此操作,它将对机器全局(文件将被复制到System32,HKLM将被更改等)

作为Windows服务运行

要作为服务运行,您可能需要从提升的命令提示符中全局安装pywin32 - 见上文。

您还需要确保Python安装在一个用户可以访问安装并加载pywintypesXX.dllpythonXX.dll的位置。特别是,LocalSystem帐户通常无法访问您的本地%USER%目录结构。

故障排除

如果在升级时遇到以下问题

The specified procedure could not be found
Entry-point not found

通常意味着以下两点之一

  • 您已升级了一个已运行安装后脚本的安装。因此,您应该再次运行它

    python Scripts/pywin32_postinstall.py -install
    

    这将尝试清理旧版本冲突的安装。

  • 系统中有其他pywin32 DLL,但位置与新的不同。这在带有预装pywin32的环境中有时会发生(例如,anaconda?)。

    这里的可能解决方案包括

    • 运行上面文档化的“post_install”脚本。
    • 否则,找到并删除所有其他pywintypesXX.dllpythoncomXX.dll的副本(其中XX是Python版本 - 例如,“39”)

从源代码构建

安装Visual Studio 2019(稍后可能也可以工作,但选项可能不同),遵循构建环境中的说明进行安装的版本。

(免费编译器可能也可以工作,但尚未经过测试 - 让我知道您的体验!)

setup.py是一个标准的distutils构建脚本,所以您可能想要

python setup.py install

python setup.py --help

某些模块需要神秘的SDK才能构建 - setup.py应该成功,优雅地告诉您为什么无法构建它们 - 如果配置确实导致构建失败,请提出问题

发布过程

在制作新版本时执行以下步骤 - 这主要是为了形成一个清单,这样@mhammond就不会忘记要做什么:)

从构建307开始,发布过程基于由Github actions创建的工件。

  • 确保 CHANGES.txt 包含所有值得注意的更改。更新标题以反映即将发布的构建和日期,并提交更改。

  • 更新 setup.py 中的新构建号。更新 CHANGES.txt 以包含下一个未发布版本的新的标题部分。(例如,一个新的空“将在构建 XXX 中出现,尚未发布”部分)

  • 将这些更改推送到 github,等待操作完成,然后下载那次运行生成的工件。

  • 将 .whl 工件上传到 pypi - 我们在推送标签之前这样做,因为它们可能会因为无效的 README.md 被拒绝。通过 py -3.? -m twine upload dist/*XXX*.whl 完成。

  • 为发布创建一个新的 git 标签。

  • 更新 setup.py 中的新构建号 + ".1"(例如,123.1),以确保未来的测试构建不会被误认为是真实发布。

  • 确保一切都被推送到 github,包括标签(即,git push --tags

  • 向 python-win32 发送邮件

较旧的发布流程

这是在本地开发环境用于创建构建时使用的旧流程。306 次构建是使用此流程发布的最后一次。

  • 确保 CHANGES.txt 包含所有值得注意的更改。更新标题以反映即将发布的构建和日期,并提交更改。

  • 更新 setup.py 中的新构建号。

  • 执行 make.bat,等待无限期,测试工件。

  • 将 .whl 工件上传到 pypi - 我们在推送标签之前这样做,因为它们可能会因为无效的 README.md 被拒绝。通过 py -3.? -m twine upload dist/*XXX*.whl 完成。

  • 提交 setup.py(以便新的构建号在存储库中),创建一个新的 git 标签

  • 将 .exe 安装程序上传到 github。

  • 更新 setup.py 中的新构建号 + ".1"(例如,123.1),以确保未来的测试构建不会被误认为是真实发布。

  • 确保一切都被推送到 github,包括标签(即,git push --tags

  • 向 python-win32 发送邮件

项目详细信息


下载文件

下载适用于您平台文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

此发布版本没有提供源分发文件。请参阅 生成分发存档的教程

构建分发

pywin32-307-cp313-cp313-win_arm64.whl (8.0 MB 查看哈希值)

上传时间 CPython 3.13 Windows ARM64

pywin32-307-cp313-cp313-win_amd64.whl (6.5 MB 查看哈希值)

上传时间 CPython 3.13 Windows x86-64

pywin32-307-cp313-cp313-win32.whl (5.9 MB 查看哈希值)

上传时间 CPython 3.13 Windows x86

pywin32-307-cp312-cp312-win_arm64.whl (8.0 MB 查看哈希值)

上传时间 CPython 3.12 Windows ARM64

pywin32-307-cp312-cp312-win_amd64.whl (6.5 MB 查看哈希值)

上传时间: CPython 3.12 Windows x86-64

pywin32-307-cp312-cp312-win32.whl (5.9 MB 查看哈希值)

上传时间: CPython 3.12 Windows x86

pywin32-307-cp311-cp311-win_arm64.whl (7.9 MB 查看哈希值)

上传时间: CPython 3.11 Windows ARM64

pywin32-307-cp311-cp311-win_amd64.whl (6.5 MB 查看哈希值)

上传时间: CPython 3.11 Windows x86-64

pywin32-307-cp311-cp311-win32.whl (5.9 MB 查看哈希值)

上传时间: CPython 3.11 Windows x86

pywin32-307-cp310-cp310-win_arm64.whl (7.9 MB 查看哈希值)

上传时间: CPython 3.10 Windows ARM64

pywin32-307-cp310-cp310-win_amd64.whl (6.5 MB 查看哈希值)

上传时间: CPython 3.10 Windows x86-64

pywin32-307-cp310-cp310-win32.whl (5.9 MB 查看哈希值)

上传时间: CPython 3.10 Windows x86

pywin32-307-cp39-cp39-win_amd64.whl (6.6 MB 查看哈希值)

上传时间: CPython 3.9 Windows x86-64

pywin32-307-cp39-cp39-win32.whl (6.0 MB 查看哈希值)

上传时间: CPython 3.9 Windows x86

pywin32-307-cp38-cp38-win_amd64.whl (6.6 MB 查看哈希值)

上传时间: CPython 3.8 Windows x86-64

pywin32-307-cp38-cp38-win32.whl (6.0 MB 查看哈希值)

上传时间 CPython 3.8 Windows x86

pywin32-307-cp37-cp37m-win_amd64.whl (6.6 MB 查看哈希值)

上传时间 CPython 3.7m Windows x86-64

pywin32-307-cp37-cp37m-win32.whl (6.0 MB 查看哈希值)

上传时间 CPython 3.7m Windows x86

由...