-
-
Notifications
You must be signed in to change notification settings - Fork 100
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUILD: End bdist_wininst
support in setup.py
#214
Conversation
I'll start with the post hoc justification for this change: `bdist_wininst` has been deprecated starting in Python 3.8. See notice: https://docs.python.org/3/whatsnew/3.8.html#deprecated discussion: https://discuss.python.org/t/deprecate-bdist-wininst/1929 bug tracker: https://bugs.python.org/issue37481 The real reason for this change is that I can't seem to get around enthought#199 when building a PyOxidizer package using PyOxidizer's `dist.pip_install` Skylark function. Upgrading Wheel to the latest version solves enthought#199 for me in a regular virtual environment, but requiring the most recent Wheel version in my `pyproject.toml`'s `build-system.requires` list doesn't solve enthought#199. (Verbose output from Pip confirms the latest Wheel version is indeed installed.) (Also ref enthought#196 enthought#191 indygreg/PyOxidizer#202.) So removing `bdist_wininst` support solves my very niche problem, but because `bdist_wininst` is so rarely used and is deprecated anyway, I figure there's little harm to anyone else in removing it from comtypes.
Ref enthought/comtypes#191 Ref enthought/comtypes#196 Ref enthought/comtypes#199 Ref enthought/comtypes#214 (basically the same as this commit) Ref indygreg/PyOxidizer#202 I'll start with the post hoc justification for this change: `bdist_wininst` has been deprecated starting in Python 3.8. See - notice: https://docs.python.org/3/whatsnew/3.8.html#deprecated - discussion: https://discuss.python.org/t/deprecate-bdist-wininst/1929 - bug tracker: https://bugs.python.org/issue37481 The real reason for this change is that Pip fails to build pywin32 when run from PyOxidizer's packaging system using PyOxidizer's `dist.pip_install` Skylark function. Pip issues the following error (after 8 minutes of compiling...): > error in setup script: command 'bdist_wininst' has no such option 'install_script' Upgrading Wheel to the latest version solves this problem for me in a regular virtual environment, but requiring the most recent Wheel version in my `pyproject.toml`'s `build-system.requires` list doesn't solve it when building with PyOxidizer. (Verbose output from Pip confirms the latest Wheel version is indeed installed.) So removing `bdist_wininst` support solves my very niche problem, but because `bdist_wininst` is so rarely used and is deprecated anyway, I figure there's little harm to anyone else in removing it from pywin32.
Hmm... Clearing comtypes cache is important "post-install" step. Can you think about getting it back another way? |
Looks like Lines 112 to 124 in 47517d6
I believe that the code I removed only affects when someone runs |
OK, that makes sense. Thanks for the diving into the problem! |
UPDATE: comtypes 1.1.8 has been released and incorporates this PR.
|
Fixes #191
Fixes #196
Fixes #199
Ref indygreg/PyOxidizer#202
I'll start with the post hoc justification for this change:
bdist_wininst
has been deprecated starting in Python 3.8. SeeThe real reason for this change is that I can't seem to get around #199 when building a PyOxidizer package using PyOxidizer's
dist.pip_install
Skylark function. Upgrading Wheel to the latest version solves #199 for me in a regular virtual environment, but requiring the most recent Wheel version in mypyproject.toml
'sbuild-system.requires
list doesn't solve #199. (Verbose output from Pip confirms the latest Wheel version is indeed installed.)So removing
bdist_wininst
support solves my very niche problem, but becausebdist_wininst
is so rarely used and is deprecated anyway, I figure there's little harm to anyone else in removing it from comtypes.