How to install Python package from source on Windows
On Thursday, May 18, 2017 at 1:19:48 AM UTC+1, Steve D'Aprano wrote:
> On Thu, 18 May 2017 07:47 am, Ian Kelly wrote:
> > Because, as has already been stated, there's no way to make such a simple
> > process cross-platform.
> Please understand that Bart's understanding of cross-platform and the Python
> community's understanding of cross-platform are different.
> Bart's understanding of cross-platform is:
> "I have a Windows box, or maybe two of them, and a Linux VM, and so long as
> my code will compile and run a few simple scripts on each of them with no
> obvious bugs, I'm going to assume we're done!"
> The Python community's understanding is:
> "We have to support literally tens of thousands of different combinations
> and permutations of hardware, operating system version, variations in how
> the OS and user's environment are configured, and variations in C compilers
> and how they are configured; we have to support hundreds of different
> flavours of Linux alone, plus FreeBSD, OpenBSD, NetBSD, and other Unixes,
> plus multiple versions of Windows and MacOS, and possibly a few others; we
> have to support machines with different floating point capabilities, and as
> much as possible abstract those differences away so that they're not
> visible to the end user; and importantly, we want to halt the build process
> with a comprehensible error message if some essential feature is lacking
> on your platform."
> When I first started using Python in version 1.5, among the many Unixes
> supported were:
> - VAX;
> - VMS;
VAX and VMS are Unixes, you learn something new every day ;)
> - Sun OS/Solaris (technically a Unix);
> - HP UX (also technically a Unix);
> - Windows 95/98;
> - Windows NT;
> - Windows CE;
> - OS/2;
> - classic Mac OS ("system 6", I think, or possibly 7).
> My memory is a little fuzzy on the following, so don't quote me, but I think
> the following were also officially supported:
> - IBM AS/400 ("System i" or "iSeries");
> - BeOS;
> - MS DOS;
> - Z/OS (OS 390);
> - Acorn RISC;
PEP 11 https://www.python.org/dev/peps/pep-0011/ gives quite a list of OSes that were but are no longer supported.
> although some of them may not have been official ports. (Most of these are
> still available through third-parties.)
> Support for a lot of those have been dropped, but it still leaves its traces
> in the build system. The most important of which is the use of configure
> and make in the first place: even if every Linux and Windows system in the
> world today uses exactly the same configuration (which they don't), make
> still tests for each of those features because you never know when you
> might be running on some exotic mainframe or embedded device with radically
> different features.
> So tell us Bart, what do you think are the chances that your Q compiler will
> *just work* with no modifications at all if somebody tried to build it on
> an IBM AS/400, or under BeOS? Or for something a little more current, how
> about Android?
Perhaps Bart can also tell us why the developers have so many buildbots to support https://www.python.org/dev/buildbot/.
>  Comprehensible to the core devs, not necessarily the end user.
> Emoji: a small, fuzzy, indistinct picture used to replace a clear and
> perfectly comprehensible word.