[Python-Dev] Can Python Be Built Without Distutils

Cyd Haselton chaselton at gmail.com
Sun Jan 25 20:51:22 CET 2015


Thanks...this looks interesting Antonio.  I'm not familiar enough with
Makefile syntax and creation to know if this can help in my case and
(fingers crossed) I believe I've just about solved my original
undefined reference to dlopen problem, but I'll be bookmarking it for
future reference (and in case I'm wrong about being close to solving
my original Android build issues).

On Sun, Jan 25, 2015 at 4:08 AM, Antonio Cavallo
<a.cavallo at cavallinux.eu> wrote:
> I tried a Makefile based build of python (+ some module) in the past for
> Android (and macos):
>
>    https://bitbucket.org/cavallo71/android
>
> There was no particular problem in dropping autoconfigure+setup.py in the
> process: the only real problem was the pgen must be compiled on the host
> machine (but that could have changed since).
>
> In general python was a plain compile and link stuff with not much magic
> involved and that is (very) good in my opinion: magic detection tends to
> fail, autoconfigure need to "execute" stuff to detect things (reason why is
> quite useless in cross-compile mode) etc.
>
> I would've tried also cmake and qmake builds as well, but simply I didn't
> have time to spend on it.
>
> I hope this helps,
> Antonio
>
>
>
> Zachary Ware wrote:
>>
>> On Saturday, January 24, 2015, Brett Cannon <brett at python.org
>> <mailto:brett at python.org>> wrote:
>>
>>     On Fri Jan 23 2015 at 5:45:28 PM Gregory P. Smith <greg at krypto.org
>> <javascript:_e(%7B%7D,'cvml','greg at krypto.org');>> wrote:
>>
>>         On Fri Jan 23 2015 at 11:20:02 AM M.-A. Lemburg <mal at egenix.com
>> <javascript:_e(%7B%7D,'cvml','mal at 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/
>> <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.
>>
>>
>> --
>> Sent from Gmail Mobile
>>
>> _______________________________________________
>> Python-Dev mailing list
>> Python-Dev at python.org
>> https://mail.python.org/mailman/listinfo/python-dev
>> Unsubscribe:
>> https://mail.python.org/mailman/options/python-dev/a.cavallo%40cavallinux.eu
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> https://mail.python.org/mailman/options/python-dev/chaselton%40gmail.com


More information about the Python-Dev mailing list