classification
Title: MSI build fails
Type: behavior Stage: resolved
Components: Library (Lib) Versions: Python 3.8, Python 3.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: berker.peksag, kayhayen, miss-islington, zach.ware
Priority: normal Keywords: 3.7regression, patch

Created on 2018-07-27 19:52 by kayhayen, last changed 2018-07-29 06:51 by berker.peksag. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 8510 merged berker.peksag, 2018-07-28 08:53
PR 8538 merged miss-islington, 2018-07-28 21:03
Messages (5)
msg322510 - (view) Author: Kay Hayen (kayhayen) Date: 2018-07-27 19:52
Hello there,

building an MSI for my project fails. I am calling it like this:

    assert subprocess.call(
        (
            sys.executable,
            "setup.py",
            "bdist_msi",
            "--target-version=" + sys.version[:3]
        )
    ) == 0

Giving the target version is probably non-sense and from a time, where one script was building multiple MSIs, I no longer do that.

and it gives:

 File "C:\Python37_64\lib\site-packages\setuptools\__init__.py", line 129, in setup
    return distutils.core.setup(**attrs)
  File "C:\Python37_64\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Python37_64\lib\distutils\dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "C:\Python37_64\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\Python37_64\lib\distutils\command\bdist_msi.py", line 256, in run
    self.add_find_python()
  File "C:\Python37_64\lib\distutils\command\bdist_msi.py", line 346, in add_find_python
    if msilib.Win64:
AttributeError: module 'msilib' has no attribute 'Win64'


This happens for 32 and 64 bit CPython 3.7.0 installations. The same code works for all of 2.7, 3.3 through to 3.6, so this is a regression.
 
Any idea?

Thanks,
Kay
msg322513 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2018-07-27 20:08
msilib.Win64 has been removed in https://github.com/python/cpython/commit/49ce74efe845a8a91939ff3990a5f233262d3e1f#diff-c762e09a046c2ff3cd91f0643cc58049L12

I guess the ``if msilib.Win64:`` clause can be replaced with ``if msilib.AMD64:``.
msg322591 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2018-07-28 21:02
New changeset 11eb1a94704142385ffc07852739863ced8587d2 by Zachary Ware (Berker Peksag) in branch 'master':
bpo-34251: Restore msilib.Win64 to preserve compatibility (GH-8510)
https://github.com/python/cpython/commit/11eb1a94704142385ffc07852739863ced8587d2
msg322598 - (view) Author: miss-islington (miss-islington) Date: 2018-07-29 00:14
New changeset 1e98d87961ec752a1623135f4d7e8a41820ae256 by Miss Islington (bot) in branch '3.7':
bpo-34251: Restore msilib.Win64 to preserve compatibility (GH-8510)
https://github.com/python/cpython/commit/1e98d87961ec752a1623135f4d7e8a41820ae256
msg322612 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2018-07-29 06:51
Thanks for the report!
History
Date User Action Args
2018-07-29 06:51:31berker.peksagsetstatus: open -> closed

components: + Library (Lib), - Distutils
versions: + Python 3.8
nosy: - eric.araujo, dstufft

messages: + msg322612
resolution: fixed
stage: patch review -> resolved
2018-07-29 00:14:48miss-islingtonsetnosy: + miss-islington
messages: + msg322598
2018-07-28 21:03:07miss-islingtonsetpull_requests: + pull_request8055
2018-07-28 21:02:59zach.waresetmessages: + msg322591
2018-07-28 08:53:00berker.peksagsetkeywords: + patch
stage: needs patch -> patch review
pull_requests: + pull_request8027
2018-07-27 20:08:37berker.peksagsetnosy: + berker.peksag, zach.ware
messages: + msg322513

keywords: + 3.7regression
type: crash -> behavior
stage: needs patch
2018-07-27 19:52:35kayhayencreate