Skip to main content

Python for Window Extensions

Project description

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, including COM support.

See CHANGES.txt for recent notable changes.

adodbapi's documentation can be found in: adodbapi/readme.txt

isapi's documentation can be found in: isapi/README.txt

Docs

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

You can get type hints, signatures and annotations from types-pywin32.

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.
For pywin32 support requests, please start a discussion under the Q&A category. All non bug related issues will be converted into a discussion anyhow.
The python-win32 mailing list is still available for general Python on Windows help requests.

Type stubs currently live in typeshed. Any issue or request related to static type-checking and IntelliSense should be raised there.

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 -m pywin32_postinstall -install

or (shorter but you don't have control over which python environment is used)

pywin32_postinstall -install

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)

Installing for MingGW/msys2

The folks at https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-python-pywin32 are graciously keeping an updated set of patches to install pywin32 for MingGW/msys2.

We'd suggest installing from https://packages.msys2.org/base/mingw-w64-python-pywin32 pacman -S mingw-w64-python-pywin32.

We're open to seeing these patches be upstreamed in pywin32 if they can be tested automatically on the CI.

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 was previously run. So you should run it again:

    python -m pywin32_postinstall -install
    

    or (shorter but you don't have control over which python environment is used)

    pywin32_postinstall -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.

Then follow the Build instructions for the build itself (including ARM64 cross-compilation).

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_all.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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pywin32-311-cp314-cp314-win_arm64.whl (8.9 MB view details)

Uploaded CPython 3.14Windows ARM64

pywin32-311-cp314-cp314-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.14Windows x86-64

pywin32-311-cp314-cp314-win32.whl (8.8 MB view details)

Uploaded CPython 3.14Windows x86

pywin32-311-cp313-cp313-win_arm64.whl (8.7 MB view details)

Uploaded CPython 3.13Windows ARM64

pywin32-311-cp313-cp313-win_amd64.whl (9.5 MB view details)

Uploaded CPython 3.13Windows x86-64

pywin32-311-cp313-cp313-win32.whl (8.7 MB view details)

Uploaded CPython 3.13Windows x86

pywin32-311-cp312-cp312-win_arm64.whl (8.7 MB view details)

Uploaded CPython 3.12Windows ARM64

pywin32-311-cp312-cp312-win_amd64.whl (9.5 MB view details)

Uploaded CPython 3.12Windows x86-64

pywin32-311-cp312-cp312-win32.whl (8.7 MB view details)

Uploaded CPython 3.12Windows x86

pywin32-311-cp311-cp311-win_arm64.whl (8.7 MB view details)

Uploaded CPython 3.11Windows ARM64

pywin32-311-cp311-cp311-win_amd64.whl (9.5 MB view details)

Uploaded CPython 3.11Windows x86-64

pywin32-311-cp311-cp311-win32.whl (8.7 MB view details)

Uploaded CPython 3.11Windows x86

pywin32-311-cp310-cp310-win_arm64.whl (8.8 MB view details)

Uploaded CPython 3.10Windows ARM64

pywin32-311-cp310-cp310-win_amd64.whl (9.6 MB view details)

Uploaded CPython 3.10Windows x86-64

pywin32-311-cp310-cp310-win32.whl (8.8 MB view details)

Uploaded CPython 3.10Windows x86

pywin32-311-cp39-cp39-win_arm64.whl (8.8 MB view details)

Uploaded CPython 3.9Windows ARM64

pywin32-311-cp39-cp39-win_amd64.whl (9.6 MB view details)

Uploaded CPython 3.9Windows x86-64

pywin32-311-cp39-cp39-win32.whl (8.8 MB view details)

Uploaded CPython 3.9Windows x86

pywin32-311-cp38-cp38-win_amd64.whl (9.6 MB view details)

Uploaded CPython 3.8Windows x86-64

pywin32-311-cp38-cp38-win32.whl (8.8 MB view details)

Uploaded CPython 3.8Windows x86

File details

Details for the file pywin32-311-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: pywin32-311-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 8.9 MB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42
MD5 07f6514f3acfa64b156c069cf657ef0d
BLAKE2b-256 c0d221af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd

See more details on using hashes here.

File details

Details for the file pywin32-311-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pywin32-311-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 9.7 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87
MD5 91216bda95a4333aa4573fa1b4bfb8c8
BLAKE2b-256 904b07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d

See more details on using hashes here.

File details

Details for the file pywin32-311-cp314-cp314-win32.whl.

File metadata

  • Download URL: pywin32-311-cp314-cp314-win32.whl
  • Upload date:
  • Size: 8.8 MB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee
MD5 a1bb24160d3519bec3c1f96e1490f417
BLAKE2b-256 c931097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5

See more details on using hashes here.

File details

Details for the file pywin32-311-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: pywin32-311-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 8.7 MB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a
MD5 370a495fb5ed6a44064944b2f9d3a1dc
BLAKE2b-256 04bf90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a

See more details on using hashes here.

File details

Details for the file pywin32-311-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pywin32-311-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 9.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d
MD5 105c1e0ada3ce7ecf52b0dc31112e691
BLAKE2b-256 e328e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c

See more details on using hashes here.

File details

Details for the file pywin32-311-cp313-cp313-win32.whl.

File metadata

  • Download URL: pywin32-311-cp313-cp313-win32.whl
  • Upload date:
  • Size: 8.7 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d
MD5 fb28c943f81614971abdb229509c54c2
BLAKE2b-256 a5be3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3

See more details on using hashes here.

File details

Details for the file pywin32-311-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: pywin32-311-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 8.7 MB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852
MD5 d88ab5bd41a77104c35c4e3d52fec901
BLAKE2b-256 ba3a2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d

See more details on using hashes here.

File details

Details for the file pywin32-311-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pywin32-311-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 9.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067
MD5 546327260b1dc4cfe16fd91fe3bd64df
BLAKE2b-256 d1a8a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f

See more details on using hashes here.

File details

Details for the file pywin32-311-cp312-cp312-win32.whl.

File metadata

  • Download URL: pywin32-311-cp312-cp312-win32.whl
  • Upload date:
  • Size: 8.7 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31
MD5 b4dca05d7c714604e9f1ea9327b2d82f
BLAKE2b-256 e7ab01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42

See more details on using hashes here.

File details

Details for the file pywin32-311-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: pywin32-311-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 8.7 MB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2
MD5 056b27df7f1f3ab46b6677eca7318983
BLAKE2b-256 447b9c2ab54f74a138c491aba1b1cd0795ba61f144c711daea84a88b63dc0f6c

See more details on using hashes here.

File details

Details for the file pywin32-311-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pywin32-311-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 9.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503
MD5 d6170a928620b5e5db49f2fcd4d8e942
BLAKE2b-256 518f9bb81dd5bb77d22243d33c8397f09377056d5c687aa6d4042bea7fbf8364

See more details on using hashes here.

File details

Details for the file pywin32-311-cp311-cp311-win32.whl.

File metadata

  • Download URL: pywin32-311-cp311-cp311-win32.whl
  • Upload date:
  • Size: 8.7 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151
MD5 18cae57f6836c01cdeddbb47843a7787
BLAKE2b-256 7caf449a6a91e5d6db51420875c54f6aff7c97a86a3b13a0b4f1a5c13b988de3

See more details on using hashes here.

File details

Details for the file pywin32-311-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: pywin32-311-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 8.8 MB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 0502d1facf1fed4839a9a51ccbcc63d952cf318f78ffc00a7e78528ac27d7a2b
MD5 03013f92a2cff4e942e6929eabe8358a
BLAKE2b-256 5738d290720e6f138086fb3d5ffe0b6caa019a791dd57866940c82e4eeaf2012

See more details on using hashes here.

File details

Details for the file pywin32-311-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pywin32-311-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 9.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 797c2772017851984b97180b0bebe4b620bb86328e8a884bb626156295a63b3b
MD5 473b954b48643d3a6f7a4b02dfae65dc
BLAKE2b-256 5ebf360243b1e953bd254a82f12653974be395ba880e7ec23e3731d9f73921cc

See more details on using hashes here.

File details

Details for the file pywin32-311-cp310-cp310-win32.whl.

File metadata

  • Download URL: pywin32-311-cp310-cp310-win32.whl
  • Upload date:
  • Size: 8.8 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 d03ff496d2a0cd4a5893504789d4a15399133fe82517455e78bad62efbb7f0a3
MD5 c775044a3854732dd721b4c392565a49
BLAKE2b-256 7b4044efbb0dfbd33aca6a6483191dae0716070ed99e2ecb0c53683f400a0b4f

See more details on using hashes here.

File details

Details for the file pywin32-311-cp39-cp39-win_arm64.whl.

File metadata

  • Download URL: pywin32-311-cp39-cp39-win_arm64.whl
  • Upload date:
  • Size: 8.8 MB
  • Tags: CPython 3.9, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 62ea666235135fee79bb154e695f3ff67370afefd71bd7fea7512fc70ef31e3d
MD5 0f68f6b43d6fbe38b717aa2730ec3b0f
BLAKE2b-256 6022e0e8d802f124772cec9c75430b01a212f86f9de7546bda715e54140d5aeb

See more details on using hashes here.

File details

Details for the file pywin32-311-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pywin32-311-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 9.6 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e0c4cfb0621281fe40387df582097fd796e80430597cb9944f0ae70447bacd91
MD5 72ae170b08510bc8ebe884f78e2ef2eb
BLAKE2b-256 9f8a1403d0353f8c5a2f0829d2b1c4becbf9da2f0a4d040886404fc4a5431e4d

See more details on using hashes here.

File details

Details for the file pywin32-311-cp39-cp39-win32.whl.

File metadata

  • Download URL: pywin32-311-cp39-cp39-win32.whl
  • Upload date:
  • Size: 8.8 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 aba8f82d551a942cb20d4a83413ccbac30790b50efb89a75e4f586ac0bb8056b
MD5 3588a12adf872d46dbda4f4e097a549d
BLAKE2b-256 5942b86689aac0cdaee7ae1c58d464b0ff04ca909c19bb6502d4973cdd9f9544

See more details on using hashes here.

File details

Details for the file pywin32-311-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pywin32-311-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 9.6 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 c8015b09fb9a5e188f83b7b04de91ddca4658cee2ae6f3bc483f0b21a77ef6cd
MD5 822b84d1b5a3e1e0a7530ee323ae0bb4
BLAKE2b-256 ff6c94c10268bae5d0d0c6509bdfb5aa08882d11a9ccdf89ff1cde59a6161afb

See more details on using hashes here.

File details

Details for the file pywin32-311-cp38-cp38-win32.whl.

File metadata

  • Download URL: pywin32-311-cp38-cp38-win32.whl
  • Upload date:
  • Size: 8.8 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for pywin32-311-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 6c6f2969607b5023b0d9ce2541f8d2cbb01c4f46bc87456017cf63b73f1e2d8c
MD5 acafaaebb5f6a0848b876c934a49663f
BLAKE2b-256 75206cd04d636a4c83458ecbb7c8220c13786a1a80d3f5fb568df39310e73e98

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page