Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.7%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Python for Windows (pywin32) Extensions
Statistics
- Stars: 5,407
- Watchers: 145
- Forks: 838
- Open Issues: 407
- Releases: 20
Topics
Metadata Files
README.md
pywin32
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.md 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,
shell
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:
shell
python -m pywin32_postinstall -install
or (shorter but you don't have control over which python environment is used)
shell
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:
text
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:
shell python -m pywin32_postinstall -installor (shorter but you don't have control over which python environment is used)
shell pywin32_postinstall -installThis 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.dllandpythoncomXX.dll(whereXXis 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.md 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.md 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
.whlartifacts to pypi - we do this before pushing the tag because they might be rejected for an invalidREADME.md. Done viapy -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.md 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 viapy -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
Owner
- Name: Mark Hammond
- Login: mhammond
- Kind: user
- Location: Melbourne, Australia
- Repositories: 49
- Profile: https://github.com/mhammond
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Mark Hammond | m****d@s****u | 3,545 |
| Roger Upole | r****e@s****m | 585 |
| Avasam | s****6@h****m | 206 |
| rupole | r****e@u****t | 79 |
| Bill Tutt | b****l@t****g | 62 |
| Jason R. Coombs | j****o@j****m | 36 |
| Vernon Cole | v****e@g****m | 31 |
| kxrob | k****o@g****m | 31 |
| Nick Czeczulin | n****k@p****m | 26 |
| Cristi Fati | f****j@y****m | 22 |
| cvs2hg | d****l@l****t | 22 |
| rwu | r****u@r****t | 16 |
| Lars Immisch | l****s@i****e | 15 |
| Thomas Heller | t****r@c****g | 14 |
| Thomas Karl Pietrowski | t****r@g****m | 11 |
| LincolnPuzey | l****n@p****v | 10 |
| Joan Karadimov | j****v@g****m | 10 |
| Thomas Geppert | g****i | 9 |
| Trent Mick | t****m@g****m | 8 |
| Biswapriyo Nath | n****i@g****m | 7 |
| Ofek Lev | o****r@g****m | 7 |
| Ashwin | 5****h | 6 |
| Tim Golden | m****l@t****k | 5 |
| Kamil Strzempowicz | k****w@g****m | 3 |
| Steven Winfield | s****d@c****t | 3 |
| Sebastian Reichelt | S****t@p****m | 3 |
| William Schwartz | w****z@g****m | 2 |
| Tim Gates | t****s@i****m | 2 |
| Niyas Sait | n****t@l****g | 2 |
| Jordan Borean | j****3@g****m | 2 |
| and 71 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 625
- Total pull requests: 489
- Average time to close issues: over 4 years
- Average time to close pull requests: 2 months
- Total issue authors: 319
- Total pull request authors: 49
- Average comments per issue: 3.17
- Average comments per pull request: 0.99
- Merged pull requests: 309
- Bot issues: 0
- Bot pull requests: 1
Past Year
- Issues: 57
- Pull requests: 252
- Average time to close issues: 23 days
- Average time to close pull requests: 26 days
- Issue authors: 42
- Pull request authors: 19
- Average comments per issue: 1.67
- Average comments per pull request: 0.8
- Merged pull requests: 131
- Bot issues: 0
- Bot pull requests: 1
Top Authors
Issue Authors
- ghost (259)
- Avasam (23)
- songyuc (7)
- geppi (6)
- csrabak (5)
- mhammond (4)
- CristiFati (4)
- scted (3)
- zarquon5 (3)
- clin1234 (3)
- 0xDEADFED5 (2)
- dornech (2)
- NathanZook (2)
- mominurr (2)
- sys2065 (2)
Pull Request Authors
- Avasam (515)
- CristiFati (32)
- geppi (18)
- mhammond (14)
- LincolnPuzey (8)
- kxrob (7)
- the-snork (6)
- clin1234 (5)
- JacobNolan1 (4)
- Mscht (4)
- vernondcole (3)
- Biswa96 (3)
- Chronial (3)
- petur-keystrike (2)
- gesslerpd (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 4
-
Total downloads:
- pypi 21,177,547 last-month
- Total docker downloads: 2,792,786,940
-
Total dependent packages: 893
(may contain duplicates) -
Total dependent repositories: 28,392
(may contain duplicates) - Total versions: 43
- Total maintainers: 4
- Total advisories: 1
pypi.org: pywin32
Python for Window Extensions
- Homepage: https://github.com/mhammond/pywin32
- Documentation: https://pywin32.readthedocs.io/
- License: PSF
-
Latest release: 311
published 7 months ago
Rankings
Advisories (1)
conda-forge.org: pywin32
A set of extension modules that provides access to many of the Windows API functions.
- Homepage: https://github.com/mhammond/pywin32
- License: PSF-2.0
-
Latest release: 304
published over 3 years ago
Rankings
anaconda.org: pywin32
A set of extension modules that provides access to many of the Windows API functions.
- Homepage: https://github.com/mhammond/pywin32
- License: HPND AND BSD-3-Clause AND LGPL-2.1-or-later AND MIT
-
Latest release: 311
published 7 months ago
Rankings
spack.io: py-pywin32
Python for Window Extensions.
- Homepage: https://github.com/mhammond/pywin32
- License: []
-
Latest release: 306
published about 2 years ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/download-artifact v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- peaceiris/actions-gh-pages v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- psf/black stable composite