How to install Python package from source on Windows

Steve D'Aprano steve+python at pearwood.info
Fri May 19 07:41:46 EDT 2017


On Fri, 19 May 2017 08:36 pm, bartc wrote:

> Which gcc version? I can't get mine (5.1.0) to report any of these, even
> with -Wall -Wextra -Wpedantic.


[steve at ando langs]$ gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



Now perhaps you will feel a tiny glimmer of what it is like to support a
project like Python. You can't assume that your users are running the same
hardware and software platform you are. So you have a choice:

- refuse to support users on unusual, old, or merely different platforms;

- add complexity to your project in order to support more people.


**Which is the whole point of this argument.** You see the complexity in
Python's build process, and claim that it's unnecessary crap. After all,
your code doesn't need anything nearly so complex!

And then, almost the first time you have another person attempt to build
your software, you learn that other users are seeing behaviour that you
don't see on your platform.

Maybe the Python core devs aren't are stupid as you have been assuming.
Maybe there's a good reason for the complexity of Python.


[...]
> I assume it's concerned about the use of 'c' on the last line, because
> it is only initialised in the conditional while loop. It thinks that
> that the loop may be executed zero times. But it is executed n times;
> the case of n being zero is taken care of earlier on.

Maybe so. And maybe a smarter compiler can recognise that the variable is
actually initialised. (That's why this is a warning only, not a syntax
error: because it is conditional on compiler heuristics.)


> (But it seems I may have overestimated people's ability to compile a
> 'naked' hello.c file, without a configuration script and makefile to do
> the work...)

You shouldn't assume that all your users are C programmers.

Or rather, of course you are entitled to if you so choose. But then you
don't get to take the moral high-horse that your build-process is easy.
Easy for expert C programmers is not easy for the average person who might
want to check out your programming language.

Yes, we acknowledge that there's much improvement needed to building Python,
especially on Windows. The build process on Windows is relatively neglected
compared to Linux (but not as much as on OS X) due to the relatively few
number of Python Windows developers who have become core devs. But we
*acknowledge* that weakness, there are reasons (both practical and
historical) for that, and are (slowly) working to fix them.



-- 
Steve
Emoji: a small, fuzzy, indistinct picture used to replace a clear and
perfectly comprehensible word.




More information about the Python-list mailing list