Skip to main content

pywin32

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


This is the readme for the Python for Win32 (pywin32) extensions, which provides access to many of the Windows APIs from Python.

See CHANGES.txt for recent notable changes.

Docs

The docs are a long and sad story, but there's now an online version of the helpfile that ships with the installers (thanks @ofek!). Lots of that is very old, but some is auto-generated and current. Would love help untangling the docs!

Support

Feel free to open issues for all bugs (or suspected bugs) in pywin32. pull-requests for all bugs or features are also welcome.

However, please do not open github issues for general support requests, or for problems or questions using the modules in this package - they will be closed. For such issues, please email the python-win32 mailing list - note that you must be subscribed to the list before posting.

Binaries

Binary releases are no longer supported.

Build 306 was the last with .exe installers. You really shouldn't use them, but if you really need them, find them here

Installing via PIP

You should install pywin32 via pip - eg,

python -m pip install --upgrade pywin32

There is a post-install script (see below) which should not be run inside virtual environments; it should only be run in "global" installs.

For unreleased changes, you can download builds made by github actions - choose any "workflow" from the main branch and download its "artifacts")

Installing globally

Outside of a virtual environment you might want to install COM objects, services, etc. You can do this by executing:

python Scripts/pywin32_postinstall.py -install

From the root of your Python installation.

If you do this with normal permissions it will be global for your user (a few files will be copied to the root of your Python install and some changes made to HKCU). If you execute this from an elevated process, it will be global for the machine (files will be copied to System32, HKLM will be changed, etc)

Running as a Windows Service

To run as a service, you probably want to install pywin32 globally from an elevated command prompt - see above.

You also need to ensure Python is installed in a location where the user running the service has access to the installation and is able to load pywintypesXX.dll and pythonXX.dll. In particular, the LocalSystem account typically will not have access to your local %USER% directory structure.

Troubleshooting

If you encounter any problems when upgrading like the following:

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

It usually means one of 2 things:

  • You've upgraded an install where the post-install script has previously run. So you should run it again:

    python Scripts/pywin32_postinstall.py -install
    

    This will make some small attempts to cleanup older conflicting installs.

  • There are other pywin32 DLLs installed in your system, but in a different location than the new ones. This sometimes happens in environments that come with pywin32 pre-shipped (eg, anaconda?).

    The possible solutions here are:

    • Run the "post_install" script documented above.
    • Otherwise, find and remove all other copies of pywintypesXX.dll and pythoncomXX.dll (where XX is the Python version - eg, "39")

Building from source

Install Visual Studio 2019 (later probably works, but options might be different), follow the instructions in Build environment for the version you install.

(the free compilers probably work too, but haven't been tested - let me know your experiences!)

setup.py is a standard distutils build script, so you probably want:

python setup.py install

or

python setup.py --help

Some modules need obscure SDKs to build - setup.py should succeed, gracefully telling you why it failed to build them - if the build actually fails with your configuration, please open an issue.

Release process

The following steps are performed when making a new release - this is mainly to form a checklist so @mhammond doesn't forget what to do :)

Since build 307 the release process is based on the artifacts created by Github actions.

  • Ensure CHANGES.txt has everything worth noting. Update the header to reflect the about-to-be released build and date, commit it.

  • Update setup.py with the new build number. Update CHANGES.txt to have a new heading section for the next unreleased version. (ie, a new, empty "Coming in build XXX, as yet unreleased" section)

  • Push these changes to github, wait for the actions to complete, then download the artifacts from that run.

  • Upload .whl artifacts to pypi - we do this before pushing the tag because they might be rejected for an invalid README.md. Done via py -3.? -m twine upload dist/*XXX*.whl.

  • Create a new git tag for the release.

  • Update setup.py with the new build number + ".1" (eg, 123.1), to ensure future test builds aren't mistaken for the real release.

  • Make sure everything is pushed to github, including the tag (ie, git push --tags)

  • Send mail to python-win32

Older Manual Release Process

This is the old process used when a local dev environment was used to create the builds. Build 306 was the last released with this process.

  • Ensure CHANGES.txt has everything worth noting. Update the header to reflect the about-to-be released build and date, commit it.

  • Update setup.py with the new build number.

  • Execute make.bat, wait forever, test the artifacts.

  • Upload .whl artifacts to pypi - we do this before pushing the tag because they might be rejected for an invalid README.md. Done via py -3.? -m twine upload dist/*XXX*.whl.

  • Commit setup.py (so the new build number is in the repo), create a new git tag

  • Upload the .exe installers to github.

  • Update setup.py with the new build number + ".1" (eg, 123.1), to ensure future test builds aren't mistaken for the real release.

  • Make sure everything is pushed to github, including the tag (ie, git push --tags)

  • Send mail to python-win32

Metadata

Release files for pywin32 307

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for pywin32 307
File
pywin32-307-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details
pywin32-307-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pywin32-307-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details
pywin32-307-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details
pywin32-307-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pywin32-307-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
pywin32-307-cp311-cp311-win_arm64.whl CPython 3.11 CPython 3.11 Windows ARM64 Details
pywin32-307-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pywin32-307-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
pywin32-307-cp310-cp310-win_arm64.whl CPython 3.10 CPython 3.10 Windows ARM64 Details
pywin32-307-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pywin32-307-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
pywin32-307-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
pywin32-307-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
pywin32-307-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
pywin32-307-cp38-cp38-win32.whl CPython 3.8 CPython 3.8 Windows x86-32 Details
pywin32-307-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
pywin32-307-cp37-cp37m-win32.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-32 Details

Total release size: 119.3 MB

Release files / pywin32-307-cp313-cp313-win_arm64.whl

Download URL pywin32-307-cp313-cp313-win_arm64.whl
Size 8.0 MB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
b30c9bdbffda6a260beb2919f918daced23d32c79109412c2085cbc513338a0a
BLAKE2b-256 checksum
How to use checksums
089b3c797468a96f68ce86f84917c198f60fc4189ab2ddc5841bcd71ead7680f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp313-cp313-win_amd64.whl

Download URL pywin32-307-cp313-cp313-win_amd64.whl
Size 6.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
576d09813eaf4c8168d0bfd66fb7cb3b15a61041cf41598c2db4a4583bf832d2
BLAKE2b-256 checksum
How to use checksums
fd59b891cf47d5893ee87e09686e736a84b80a8c5112a1a80e37363ab8801f54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp313-cp313-win32.whl

Download URL pywin32-307-cp313-cp313-win32.whl
Size 5.9 MB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
ea4d56e48dc1ab2aa0a5e3c0741ad6e926529510516db7a3b6981a1ae74405e5
BLAKE2b-256 checksum
How to use checksums
61c2bdff07ee75b9c0a0f87cd52bfb45152e40d4c6f99e7256336e243cf4da2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp312-cp312-win_arm64.whl

Download URL pywin32-307-cp312-cp312-win_arm64.whl
Size 8.0 MB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
b53658acbfc6a8241d72cc09e9d1d666be4e6c99376bc59e26cdb6223c4554d2
BLAKE2b-256 checksum
How to use checksums
cd6453b1112cb05f85a6c87339a9f90a3b82d67ecb46f16b45abaac3bf4dee2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp312-cp312-win_amd64.whl

Download URL pywin32-307-cp312-cp312-win_amd64.whl
Size 6.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
00d047992bb5dcf79f8b9b7c81f72e0130f9fe4b22df613f755ab1cc021d8347
BLAKE2b-256 checksum
How to use checksums
9c11c56e771d2cdbd2dac8e656edb2c814e4b2239da2c9028aa7265cdfff8aed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp312-cp312-win32.whl

Download URL pywin32-307-cp312-cp312-win32.whl
Size 5.9 MB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
07649ec6b01712f36debf39fc94f3d696a46579e852f60157a729ac039df0815
BLAKE2b-256 checksum
How to use checksums
904e9c660fa6c34db3c9542c9682b0ccd9edd63a6a4cb6ac4d22014b2c3355c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp311-cp311-win_arm64.whl

Download URL pywin32-307-cp311-cp311-win_arm64.whl
Size 7.9 MB
Tags CPython 3.11 Windows ARM64
SHA-256 checksum
How to use checksums
fd436897c186a2e693cd0437386ed79f989f4d13d6f353f8787ecbb0ae719398
BLAKE2b-256 checksum
How to use checksums
6372dce6d08a2adeaf9e7e0462173610900d01d16a449aa74c9e035b7c2ec8f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp311-cp311-win_amd64.whl

Download URL pywin32-307-cp311-cp311-win_amd64.whl
Size 6.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
987a86971753ed7fdd52a7fb5747aba955b2c7fbbc3d8b76ec850358c1cc28c3
BLAKE2b-256 checksum
How to use checksums
5e8ddd2bf7e5dbfed3ea17b07763bc13d007583ef48914ed446be1c329c8e601
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp311-cp311-win32.whl

Download URL pywin32-307-cp311-cp311-win32.whl
Size 5.9 MB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
fec5d27cc893178fab299de911b8e4d12c5954e1baf83e8a664311e56a272b75
BLAKE2b-256 checksum
How to use checksums
f9295f50cb02aef57711bf941e1d93bfe602625f89faf33abb737441ab698496
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp310-cp310-win_arm64.whl

Download URL pywin32-307-cp310-cp310-win_arm64.whl
Size 7.9 MB
Tags CPython 3.10 Windows ARM64
SHA-256 checksum
How to use checksums
0c12d61e0274e0c62acee79e3e503c312426ddd0e8d4899c626cddc1cafe0ff4
BLAKE2b-256 checksum
How to use checksums
6555f1c84fcccbd5b75c09aa2a948551ad4569f9c14994a39959d3fee3267911
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp310-cp310-win_amd64.whl

Download URL pywin32-307-cp310-cp310-win_amd64.whl
Size 6.5 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
36e650c5e5e6b29b5d317385b02d20803ddbac5d1031e1f88d20d76676dd103d
BLAKE2b-256 checksum
How to use checksums
94b420804bb7528419d503c71cfcb8988f0eb9f3596501a9d86eb528c9998055
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp310-cp310-win32.whl

Download URL pywin32-307-cp310-cp310-win32.whl
Size 5.9 MB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
f8f25d893c1e1ce2d685ef6d0a481e87c6f510d0f3f117932781f412e0eba31b
BLAKE2b-256 checksum
How to use checksums
123d91d710c40cc61fd241025351fd61fb674859973c5a0b3111e532d7229012
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp39-cp39-win_amd64.whl

Download URL pywin32-307-cp39-cp39-win_amd64.whl
Size 6.6 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
e9d5202922e74985b037c9ef46778335c102b74b95cec70f629453dbe7235d87
BLAKE2b-256 checksum
How to use checksums
fd6aa6a21b879594a13fe43a67b6ad1e1fc3dcb02579a1708ff8f7264ee7d599
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp39-cp39-win32.whl

Download URL pywin32-307-cp39-cp39-win32.whl
Size 6.0 MB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
55ee87f2f8c294e72ad9d4261ca423022310a6e79fb314a8ca76ab3f493854c6
BLAKE2b-256 checksum
How to use checksums
f134c375ce1a3960f085a93d8ec2e8daf944492d1895336517eac3838777d096
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp38-cp38-win_amd64.whl

Download URL pywin32-307-cp38-cp38-win_amd64.whl
Size 6.6 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
7e0b2f93769d450a98ac7a31a087e07b126b6d571e8b4386a5762eb85325270b
BLAKE2b-256 checksum
How to use checksums
2b70d027ce15b2cce1e9f95f1ac689c239eb928ae853fbe7eb05c23236855e69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp38-cp38-win32.whl

Download URL pywin32-307-cp38-cp38-win32.whl
Size 6.0 MB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
13d059fb7f10792542082f5731d5d3d9645320fc38814759313e5ee97c3fac01
BLAKE2b-256 checksum
How to use checksums
8cb523a56c705e0e0b07e3fd0bac643c238dee8f8ad437d4c59bf3921b2961f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp37-cp37m-win_amd64.whl

Download URL pywin32-307-cp37-cp37m-win_amd64.whl
Size 6.6 MB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
05de55a7c110478dc4b202230e98af5e0720855360d2b31a44bb4e296d795fba
BLAKE2b-256 checksum
How to use checksums
9526512ceafc732070bdc67c6542b70f436ff5e3ff2dc23815cecb01ddfab1dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release files / pywin32-307-cp37-cp37m-win32.whl

Download URL pywin32-307-cp37-cp37m-win32.whl
Size 6.0 MB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
5101472f5180c647d4525a0ed289ec723a26231550dbfd369ec19d5faf60e511
BLAKE2b-256 checksum
How to use checksums
6855a5bd16875e31fd91f294772997329a3be48c24f0f8fcdffdce2fd83bc390
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.6

Release history Release notifications | RSS feed

312

21 release files

311

20 release files

310

16 release files

309

16 release files

308

18 release files

This release

307 This release

18 release files

306

14 release files

305

14 release files

304

14 release files

303

12 release files

302

10 release files

301

10 release files

300

10 release files

228

12 release files

227

12 release files

226

12 release files

225

12 release files

224

8 release files

223

8 release files

222

7 release files

214

210

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page