Python for Windows (pywin32) Extensions
Switch branches/tags
Clone or download
Failed to load latest commit information.
AutoDuck Change a few links to the 'home page' from starship to github Sep 28, 2018
Pythonwin Fix PythonWin startup crash when keyboard layout is non-English (#1264) Oct 24, 2018
SWIG Issue 148: add typemap for ULONG_PTR Aug 24, 2015
adodbapi Clarify import Jan 31, 2018
com Fix a regression introduced in build 220 around COM properties. Sep 28, 2018
isapi Remove more Python 2.3 workarounds Apr 11, 2013
win32 Update py3k.html to reflect that py3k support is no longer experimental Sep 28, 2018
.cvsignore No longer keep my .kpf under CVS. May 13, 2004
.gitattributes Normalize git line-endings Sep 19, 2017
.gitignore Add environments to .gitignore (#1239) Aug 27, 2018
.hgeol configure adodbapi as 'binary' to prevent the eol extension complaining Jun 13, 2013
CHANGES.txt Fix PythonWin startup crash when keyboard layout is non-English (#1264) Oct 24, 2018 Make compatible with py2.7 and py3.x and remove Apr 30, 2018 Add more noted to Sep 28, 2018
appveyor.yml CI: Adding AppVeyor CI (v2) (#1187) May 3, 2018
build_all.bat Make compatible with py2.7 and py3.x and remove Apr 30, 2018
make_all.bat Make compatible with py2.7 and py3.x and remove Apr 30, 2018
pywin32.pth Add pywin32_system32 to PATH to help with pip installs. Fixes #1153 Feb 25, 2018 Have print better usage when run with no args Jan 21, 2018 add pywin32 test runner for all automated tests Feb 26, 2011 Build 224 Sep 28, 2018


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.

Note that as of build 222, pywin32 has a new home at github. You can find build 221 and later on github and older versions can be found on the old project home at sourceforge

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


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.


By far the easiest way to use pywin32 is to grab binaries from the most recent release

Installing via PIP

Note that PIP support is experimental.

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/ -install

Building from source

Building from source is extremely complicated due to the fact we support building old versions of Python using old versions of Windows SDKs. If you just want to build the most recent version, you can probably get away with installing th same MSVC version used to build that version of Python, grabbing a recent Windows SDK and running is a standard distutils build script. You probably want:

python install


python --help

You can run 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.

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 with the new build number.

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

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

  • Upload the .exe installers to github, the .whl files to pypi.

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

  • Send mail to python-win32