On 24.01.2015 21:23, Zachary Ware wrote: > On Saturday, January 24, 2015, Brett Cannon <br...@python.org> wrote: > >> On Fri Jan 23 2015 at 5:45:28 PM Gregory P. Smith <g...@krypto.org >> <javascript:_e(%7B%7D,'cvml','g...@krypto.org');>> wrote: >> >>> On Fri Jan 23 2015 at 11:20:02 AM M.-A. Lemburg <m...@egenix.com >>> <javascript:_e(%7B%7D,'cvml','m...@egenix.com');>> wrote: >>> >>>> On 23.01.2015 19:48, Matthias Klose wrote: >>>>> On 01/23/2015 06:30 PM, Cyd Haselton wrote: >>>>>> Related to my earlier question regarding building Python on Android >>>>>> and an undefined reference to dlopen error...I have the following >>>>>> question: Is it possible to build and install Python without having >>>>>> to build and install...or use...distutils? >>>>>> >>>>>> Some background: >>>>>> I can build the python interpreter on my device, and I can build a >>>>>> bunch of modules. The problem appears when make reaches the part >>>>>> where setup.py is used to build and import modules...specifically when >>>>>> setup.py attempts to import distutils.core. >>>>> >>>>> you can do this using Setup.local. This works for me building >>>> additional >>>>> extensions as builtins. It might require some tweaking to build >>>> everything. >>>> >>>> You may want to have a look at the Setup files we're using >>>> in eGenix PyRun, which uses them to force static builds of the >>>> various built-in extensions. >>>> >>>> Look for these files: >>>> >>>> PyRun/Runtime/Setup.PyRun-2.7 >>>> PyRun/Runtime/Setup.PyRun-3.4 >>>> >>>> in the source archives: >>>> >>>> http://www.egenix.com/products/python/PyRun/ >>>> >>>>> Otoh, I would like to get rid off the setup.py altogether (/me ducks >>>> ...). >>>> >>>> Why ? It's great for finding stuff on your system and configuring >>>> everything without user intervention (well, most of the time :-)). >>>> >>> >>> Because our setup.py is a nightmare of arbitrary code run in a linear >>> fashion with ad-hoc checks for things that are unlike how any other project >>> on the planet determines what is available on your system. It may have >>> seemed "great" when it was created in 2001. It really shows its age now. >>> >>> It defeats build parallelism and dependency declaration. >>> It also prevents cross compilation. >>> >>> Building an interpreter with a limited standard library on your build >>> host so that you can run said interpreter to have it drive the remainder of >>> your build is way more self hosting that we rightfully need to be for >>> CPython. >>> >> >> So are you suggesting to add the build rules to configure and the Makefile >> -- and Windows build file -- in order to drop setup.py? >> > > Windows already doesn't use setup.py. There are a lot more modules built-in > on Windows, and others have their own project files; distutils isn't used > at all.
The Windows installers comes with all dependencies included. On other systems, this is not the case and so determining the various settings is done using Python, which is a lot easier to do than e.g. relying on autoconf finding everything and setting up the correct compile options for each built-in. All that said: if you can come up with a better system that's both easy to maintain and provides the same level of user friendliness, I'm sure this would be considered. BTW: Parallel execution, cross compilation can be added to setup.py. I don't think parallel execution is all that important, but cross compilation would certainly be an interesting feature to have (this currently has to be done using the Setup.in approach) and an option to build the modules statically linked to the interpreter would also be nice. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Jan 24 2015) >>> Python Projects, Coaching and Consulting ... http://www.egenix.com/ >>> mxODBC Plone/Zope Database Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ ::::: Try our mxODBC.Connect Python Database Interface for free ! :::::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/ _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com