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.

See CHANGES.txt for recent notable changes.

Only Python 3 is supported. If you want Python 2 support, you want build 228.

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

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

Note that there are no 32-bit binary installers for 3.10 and later - see this github issue

Installing via PIP

You can install pywin32 via pip:

pip install pywin32

If you encounter any problems when upgrading (eg, "module not found" errors or similar), you should execute:

python Scripts/pywin32_postinstall.py -install

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

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 that command from an elevated (ie, "Run as Administrator) command prompt.

The specified procedure could not be found / Entry-point not found Errors?

A very common report is that people install pywin32, but many imports fail with errors similar to the above.

In almost all cases, this tends to mean 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 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")

Running as a Windows Service

Modern Python installers do not, by default, install Python in a way that is suitable for running as a service, particularly for other users.

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

  • Manually copy pythonservice.exe from the site-packages/win32 directory to the same place as these DLLs.

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.

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.

  • 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.5 -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.

Built Distributions

pywin32-304-cp311-cp311-win_arm64.whl (11.2 MB view hashes)

Uploaded cp311

pywin32-304-cp311-cp311-win_amd64.whl (12.1 MB view hashes)

Uploaded cp311

pywin32-304-cp311-cp311-win32.whl (11.0 MB view hashes)

Uploaded cp311

pywin32-304-cp310-cp310-win_arm64.whl (11.2 MB view hashes)

Uploaded cp310

pywin32-304-cp310-cp310-win_amd64.whl (12.1 MB view hashes)

Uploaded cp310

pywin32-304-cp310-cp310-win32.whl (11.0 MB view hashes)

Uploaded cp310

pywin32-304-cp39-cp39-win_amd64.whl (12.2 MB view hashes)

Uploaded cp39

pywin32-304-cp39-cp39-win32.whl (11.0 MB view hashes)

Uploaded cp39

pywin32-304-cp38-cp38-win_amd64.whl (12.3 MB view hashes)

Uploaded cp38

pywin32-304-cp38-cp38-win32.whl (11.1 MB view hashes)

Uploaded cp38

pywin32-304-cp37-cp37m-win_amd64.whl (12.2 MB view hashes)

Uploaded cp37

pywin32-304-cp37-cp37m-win32.whl (11.1 MB view hashes)

Uploaded cp37

pywin32-304-cp36-cp36m-win_amd64.whl (12.2 MB view hashes)

Uploaded cp36

pywin32-304-cp36-cp36m-win32.whl (11.1 MB view hashes)

Uploaded cp36

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page