[Python-Dev] Status of C compilers for Python on Windows

Paul Moore p.f.moore at gmail.com
Thu Oct 30 00:45:54 CET 2014

On 29 October 2014 23:22, Nathaniel Smith <njs at pobox.com> wrote:
>> Yeah, I know what you mean. My take on this is that I agree it's not
>> easy if you don't know and can't get access to the information, but if
>> you can, there's very little to it.
> That's great, but yeah. In case it helps as a data point, I consider
> myself a reasonably technical guy, probably more than your average
> python package author -- 15 years of free software hacking, designed a
> pretty popular X remote display protocol, helped invent DVCS, have
> written patches to gcc and the kernel, numpy co-maintainer, etc. etc.

Yeah, that counts :-)

> For the last ~12 months I've had an underlined and circled todo item
> saying "make wheels for https://pypi.python.org/pypi/zs/", and every
> time I've sat down and spent a few hours trying I've ended up utterly
> defeated with a headache. Distutils is spaghetti, and Windows is
> spaghetti (esp. if you've never used it for more than checking email
> on a friend's laptop), and the toolchain setup is spaghetti, and then
> suddenly people are talking about vcvarsall.bats and I don't know what
> all. I honestly would totally benefit from one of those
> talk-your-grandparents-through-it tutorials ("here's a screenshot of
> the dialogue box, and I've drawn an arrow pointing at the 'ok' button.
> You should press the 'ok' button.")

OK. That needs to be fixed. How about this. I'll work with you to get
the wheel build process set up in such a way that you can maintain it,
and we'll document what you needed to know in order to do it. Then I
can put that documentation into the packaging user guide for other
people to work with. It can wait till you have the time, but when you
do, shout and I'll help.

I know nothing about zs, but I just tried building it. MSVC 2010
doesn't support "static inline" (used twice in zs\pycrc-crc64xz.h) but
when I removed the "inline" from that it built fine for me. So it
should be a good example, as there are no particular complexities to
deal with.

>>>> - For non-free MSVC, install the appropriate version, and everything just
>>>> works.
>>>> - For Python 2.7 (32 or 64 bit), install the compiler for Python 2.7
>>>> package and everything just works as long as you're using setuptools.
>>>> - For 32 bit Python 3.2-3.4, install Visual Studio Express and
>>>> everything just works.
>>>> - For 64 bit Python 3.2-3.4, install the SDK, set some environment
>>>> variables, and everything just works.
> I think the SDK covers both 32 and 64 bit? If so then leaving visual
> studio out of things entirely is probably simpler.

The SDK is the most complex environment to set up, so avoiding it
unless you need it is a good thing. But maybe it's worth explaining
that if you need it anyway, this is how you set it up to cover some of
the other cases as well.

> I'm also unsure how you even get both 32- and 64-bit versions of
> python to coexist on the same system.

Just install them into different directories. The default is the same
for 32 and 64 bit, so you need to override the default for (at least)
one of them, but that's all.


More information about the Python-Dev mailing list