This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author eric.araujo
Recipients alexis, eric.araujo, paul.moore, tarek, vinay.sajip
Date 2011-10-17.13:26:19
SpamBayes Score 4.9954485e-13
Marked as misclassified No
Message-id <1318857980.75.0.521925834297.issue13172@psf.upfronthosting.co.za>
In-reply-to
Content
> Arguably, the command shouldn't fail, it should simply omit the bdist_msi command from the listing.
> But as _msi is part of Python, the installation is broken if it isn't present so I guess that
> handling the issue gracefully isn't really important.
My first feeling was agreement with your request, but then you added that _msi is part of Python, so I’m not sure we should increase the code complexity for a non-issue.

> (I assume the missing _msi extension isn't an issue on Unix).
Yep, see Lib/packaging/command/__init__.py:

  # XXX this is crappy
  if os.name == 'nt':
      _COMMANDS['bdist_msi'] = 'packaging.command.bdist_msi.bdist_msi'

> it feels symptomatic of a general lack of clean error handling, which I think should be fixed :-(
I suppose the traceback would have been much more useful with #12703 fixed.  (There are a number of resolve_name-like functions out there, it’s sad to see it reimplemented with various degree in the quality of error reporting over and over again.)

Besides the problem with resolve_name, I think there’s a specific problem with bdist_msi.  As you can see with the comment I added in the code and quoted above, I’m not satisfied with the way we add bdist_msi to the set of available commands.  It’s the only command to be special-cased; I guess it can’t be helped, so maybe I should remove the comment.  I could change the conditional to register the command if _msi can be successfully imported; however, I fear this would hide bugs, as _msi is a part of a Python installation on Windows, so I’d rather continue to check os.name.  Would you be satisfied with a more helpful traceback that would point you immediately to missing msi?  Do you prefer that bdist_msi catch an ImportError for _msi and print a short error message instead of a traceback in all its glory?
History
Date User Action Args
2011-10-17 13:26:20eric.araujosetrecipients: + eric.araujo, paul.moore, vinay.sajip, tarek, alexis
2011-10-17 13:26:20eric.araujosetmessageid: <1318857980.75.0.521925834297.issue13172@psf.upfronthosting.co.za>
2011-10-17 13:26:20eric.araujolinkissue13172 messages
2011-10-17 13:26:19eric.araujocreate