Skip to main content

# pywin32

[![CI](https://github.com/mhammond/pywin32/workflows/CI/badge.svg)](https://github.com/mhammond/pywin32/actions?query=workflow%3ACI) [![PyPI - Version](https://img.shields.io/pypi/v/pywin32.svg)](https://pypi.org/project/pywin32) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pywin32.svg)](https://pypi.org/project/pywin32) [![PyPI - Downloads](https://img.shields.io/pypi/dm/pywin32.svg)](https://pypi.org/project/pywin32) [![License - PSF-2.0](https://img.shields.io/badge/license-PSF–2.0-9400d3.svg)](https://spdx.org/licenses/PSF-2.0.html)


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](https://github.com/mhammond/pywin32/blob/master/CHANGES.txt) for recent notable changes.

Build 228 is the last build supporting Python 2, and as part of this transition, all code in the repository is now using Python 3 syntax. To highlight and celebrate this change, build 228 is the last numbered 2XX - the following build numbers start at 300.

In other words, there is no build 229 - the build numbers jump from 228 to 300.

As of build 222, pywin32 has a new home at [github](https://github.com/mhammond/pywin32). You can find build 221 and later on github and older versions can be found on the old project home at [sourceforge](https://sourceforge.net/projects/pywin32/)

A special shout-out to @xoviat who provided enormous help with the github move!

## Support

Feel free to [open issues](https://github.com/mhammond/pywin32/issues) for all bugs (or suspected bugs) in pywin32. [pull-requests](https://github.com/mhammond/pywin32/pulls) 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](http://mail.python.org/mailman/listinfo/python-win32) - note that you must be subscribed to the list before posting.

## Binaries By far the easiest way to use pywin32 is to grab binaries from the [most recent release](https://github.com/mhammond/pywin32/releases)

## Installing via PIP

You can install pywin32 via pip: > pip install pywin32

Note that if you want to use pywin32 for “system wide” features, such as registering COM objects or implementing Windows Services, then you must run the following command from an elevated command prompt:

> python Scripts/pywin32_postinstall.py -install

## Building from source

Building from source has been simplified recently - you just need Visual Studio and the Windows 10 SDK installed (the free compilers probably work too, but haven’t been tested - let me know your experiences!)

setup.py is a standard distutils build script. You probably want:

> python setup.py install

or

> python setup.py –help

You can run setup.py without any arguments to see specific information about dependencies. A vanilla MSVC installation should be able to build most extensions and list any extensions that could not be built due to missing libraries - if the build actually fails with your configuration, please [open an issue](https://github.com/mhammond/pywin32/issues).

## 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 :)

  • Ensure CHANGES.txt has everything worth noting, commit it.

  • Update setup.py with the new build number.

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

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

  • 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)

  • Upload the .exe installers to github (using the web UI), the .whl files to pypi (using py -3.5 -m twine upload dist/*XXX*.whl where XXX is the build number).

  • Send mail to python-win32

Release files for pywin32 301

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 301
File
pywin32-301-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
pywin32-301-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
pywin32-301-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
pywin32-301-cp38-cp38-win32.whl CPython 3.8 CPython 3.8 Windows x86-32 Details
pywin32-301-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
pywin32-301-cp37-cp37m-win32.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-32 Details
pywin32-301-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details
pywin32-301-cp36-cp36m-win32.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-32 Details
pywin32-301-cp35-cp35m-win_amd64.whl CPython 3.5 CPython 3.5 pymalloc Windows x86-64 Details
pywin32-301-cp35-cp35m-win32.whl CPython 3.5 CPython 3.5 pymalloc Windows x86-32 Details

Total release size: 88.6 MB

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

Download URL pywin32-301-cp39-cp39-win_amd64.whl
Size 9.3 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
87604a4087434cd814ad8973bd47d6524bd1fa9e971ce428e76b62a5e0860fdf
BLAKE2b-256 checksum
How to use checksums
5f977a9d7028977390a9692d7176c85e51750c8e431503fc02ab3e54a8e0dcad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.3+

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

Download URL pywin32-301-cp39-cp39-win32.whl
Size 8.5 MB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
595d397df65f1b2e0beaca63a883ae6d8b6df1cdea85c16ae85f6d2e648133fe
BLAKE2b-256 checksum
How to use checksums
d2622c1db93c2ac7ee7f8fd91d4139905b17e91d62015848b5adaa10a6307372
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.3+

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

Download URL pywin32-301-cp38-cp38-win_amd64.whl
Size 9.3 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
8c9d33968aa7fcddf44e47750e18f3d034c3e443a707688a008a2e52bbef7e96
BLAKE2b-256 checksum
How to use checksums
cb38391371466109bd26a02047b9392fa6b0c1777deadb2f8cd4d2f699bf4574
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.3+

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

Download URL pywin32-301-cp38-cp38-win32.whl
Size 8.5 MB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
88981dd3cfb07432625b180f49bf4e179fb8cbb5704cd512e38dd63636af7a17
BLAKE2b-256 checksum
How to use checksums
0f976c5a74830c5cfb8310fb291eadd95e8956fb5085673955cbcfb3f6b929c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.3+

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

Download URL pywin32-301-cp37-cp37m-win_amd64.whl
Size 9.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
fb3b4933e0382ba49305cc6cd3fb18525df7fd96aa434de19ce0878133bf8e4a
BLAKE2b-256 checksum
How to use checksums
84e0f7c34be2e080c248e378109c3a848cd07ab8e45e11d8dc9f1d818b3940c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.3+

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

Download URL pywin32-301-cp37-cp37m-win32.whl
Size 8.5 MB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
98f62a3f60aa64894a290fb7494bfa0bfa0a199e9e052e1ac293b2ad3cd2818b
BLAKE2b-256 checksum
How to use checksums
0b75b7848a682b83dbb2d56ed137ca49e67308fd0ec5260de0efa9ed949cf615
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.3+

Release files / pywin32-301-cp36-cp36m-win_amd64.whl

Download URL pywin32-301-cp36-cp36m-win_amd64.whl
Size 9.2 MB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
dafa18e95bf2a92f298fe9c582b0e205aca45c55f989937c52c454ce65b93c78
BLAKE2b-256 checksum
How to use checksums
c621bb0ff995c5f67786fb3d6ffbfc5160ed89d7267862123a10e0a4a2d924db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.3+

Release files / pywin32-301-cp36-cp36m-win32.whl

Download URL pywin32-301-cp36-cp36m-win32.whl
Size 8.5 MB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
c866f04a182a8cb9b7855de065113bbd2e40524f570db73ef1ee99ff0a5cc2f0
BLAKE2b-256 checksum
How to use checksums
ec98e4169c08b2d45e8a16b3b61c8d6b5a17c732ba604297b1174a427b4847cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.3+

Release files / pywin32-301-cp35-cp35m-win_amd64.whl

Download URL pywin32-301-cp35-cp35m-win_amd64.whl
Size 9.2 MB
Tags CPython 3.5 CPython 3.5 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
9635df6998a70282bd36e7ac2a5cef9ead1627b0a63b17c731312c7a0daebb72
BLAKE2b-256 checksum
How to use checksums
fc2aa91ab99796b7321359bcd1f85f95bdfdbe05b888b36e8a7a7cda1cbec8e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.3+

Release files / pywin32-301-cp35-cp35m-win32.whl

Download URL pywin32-301-cp35-cp35m-win32.whl
Size 8.5 MB
Tags CPython 3.5 CPython 3.5 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
93367c96e3a76dfe5003d8291ae16454ca7d84bb24d721e0b74a07610b7be4a7
BLAKE2b-256 checksum
How to use checksums
68ce598fa78c2f475dfd7d24fc66e608ab2579d03a696ed6d1a3cb2cb96ad4b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.3+

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

307

18 release files

306

14 release files

305

14 release files

304

14 release files

303

12 release files

302

10 release files

This release

301 This release

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