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 lemburg
Recipients MrWerewolf, eric.araujo, giampaolo.rodola, ipatrol, lemburg, loewis, mark.dickinson, r.david.murray, schmir, skrah, srid, tarek, thorsten.behrens, zzzeek
Date 2011-06-06.19:52:27
SpamBayes Score 5.551115e-17
Marked as misclassified No
Message-id <1307389948.75.0.639285536337.issue7511@psf.upfronthosting.co.za>
In-reply-to
Content
mike bayer wrote:
> > 
> > mike bayer <mike_mp@zzzcomputing.com> added the comment:
> > 
> > regarding "hey this is an MS bug not Python", projects which feature optional C extensions are starting to apply workarounds for the issue on their end (I will need to commit a specific catch for this to SQLAlchemy) - users need to install our software and we need to detect compilation failures as a sign to move on without it.   I think it's preferable for Python distutils to work around an MS issue rather than N projects having to work around an MS issue exposed through distutils.  Seems like this bug has been out there a real long time...bump ?
This is not really an MS issue. Setting up the environment to be
able to compile extensions is a prerequisite on most platforms and
with most compilers.

MS VC++ supports having multiple compiler versions on the same
machine and allow compiling to x86, x64 and ia64 (at least
in more recent VC++ versions).

I think it's fair to ask the user to setup the environment correctly
before running "python setup.py install", since distutils doesn't
really know which compiler to use - e.g. you could be cross-compiling
for x64 on an x86 machine, or you may want to use VC 2008 instead of
a more recently installed VC 2010.

Wouldn't it be better to have distutils tell the user about the
possible options, instead of guessing and then possibly compiling
extensions which later on don't import or import, but don't work
as expected ?

Regarding the latest patch: This is not the right approach, since
find_vcvarsall() is supposed to return the path to the vcvarsall.bat
file and not an architecture specific setup file. It is later
called with the arch identifier, which the arch specific setup files
don't check or use.

Also note that vcvarsall.bat can take these options:

   x86 (default), x64, amd64, x86_amd64, ia64, x86_ia64

The x86_* options setup the cross compilers.
History
Date User Action Args
2011-06-06 19:52:28lemburgsetrecipients: + lemburg, loewis, mark.dickinson, giampaolo.rodola, schmir, tarek, eric.araujo, r.david.murray, zzzeek, srid, skrah, ipatrol, MrWerewolf, thorsten.behrens
2011-06-06 19:52:28lemburgsetmessageid: <1307389948.75.0.639285536337.issue7511@psf.upfronthosting.co.za>
2011-06-06 19:52:28lemburglinkissue7511 messages
2011-06-06 19:52:27lemburgcreate