[New-bugs-announce] [issue39586] Deprecate bdist_msi: use bdist_wheel instead

Hugo van Kemenade report at bugs.python.org
Sat Feb 8 10:07:52 EST 2020

New submission from Hugo van Kemenade <hugovk+python at gmail.com>:

According to the "Deprecate bdist_wininst" discussion (July 2019), bdist_msi can be deprecated:


Victor Stinner wrote:

"Now the question is if someone here wants to go further is deprecate all distutils commands except sdist and bdist_wheel? Steve Dower wants to deprecate bdist_msi as well: I’m not sure who use bdist_msi. It’s another form of GUI installer, so it’s similar to bdist_wininst. I would also strongly encourage to use bdist_wheel rather than bdist_msi."

Brett Cannon wrote:

"Probably a good idea, but I personally don’t have the time."

Steve Dower wrote:

"I think the others are fine to leave (though if people who work more closely with those tools want to say drop them then I’m fine with that too).

"bdist_msi and bdist_exe don’t integrate with any other package managers, can’t be integrated with any other installer besides our own Python installer, and in any case are worse than simply copying the files. (If we had a bdist_msm I’d be slightly more sympathetic, but we don’t and probably should not :) )

"I also don’t necessarily think that wheels are always the alternative, particularly for embedded scenarios, but I do think that the fewer options we provide by default will help people find the option they actually need, rather than assuming that because it’s “blessed” it must see correct."

And in "Remove distutils bdist_wininst command" (February 2020):


Victor Stinner wrote:

"I don’t plan to remove bdist_msi, even if wheel packages are now recommended."

Steve Dower wrote:

"We should, though. Installing a package using an MSI is worse than an EXE, as it leaves far more cruft behind if you don’t uninstall it before changing/removing the Python install.

"Standalone apps should bundle everything, like pynsist or briefcase. GPO deployment should create their own MSI with everything they want in the bundle and deploy that. Perhaps someone can make an “installer” based on the py.exe launcher (which I believe supports an attached zip file) that will use pip and a local/embedded wheel.

"But we should really discourage package installs that don’t support venv and/or leave cruft behind."

Victor Stinner wrote:

"If you want to see it disappear, you should start by deprecating it in Python 3.9. It would be a first step."

PR to follow.

See also:
* https://bugs.python.org/issue37481 "Deprecate bdist_wininst: use bdist_wheel instead"
* https://bugs.python.org/issue39541 "distutils: Remove bdist_wininst (Windows .exe installers) in favor of bdist_wheel (.whl)"

components: Distutils, Windows
messages: 361633
nosy: dstufft, eric.araujo, hugovk, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: Deprecate bdist_msi: use bdist_wheel instead
versions: Python 3.9

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list