Building things with setup.py

James Stroud jstroud at mbi.ucla.edu
Fri Sep 22 11:35:04 CEST 2006


Robert Kern wrote:
> James Stroud wrote:
>> I did build my own python 2.5, yesterday, requiring me to rebuild all 
>> extensions.
> 
> Do other extensions build correctly? If so, it's beginning to look like 
> a problem in numpy.distutils .

It seems that every thing has built without incident (numarray, numeric, 
mxtexttools, pil, reportlab, just to name a few), with the exception, 
strangely enough, of python2.5 itself. Python required hiding previous 
python installations.

>> Everything I do is compiled by hand as joe-user. I'm in a situation 
>> where I can't do RPM (and I don't have root on my work machine 
>> (theoretically ;-)) so, to be a good joe-user, everything I add goes 
>> into the prefix:
>>
>> $HOME/Programs
>>
>> This is the listing from $HOME/Programs/lib/python2.5/config:
>>
>> euler 6% ls
>> total 4092
>>     8 config.c       12 install-sh*       44 Makefile       8 python.o 
>>     8 Setup.config
>>     8 config.c.in  3960 libpython2.5.a    12 makesetup*    24 Setup 
>>     8 Setup.local
>>
>> The build process, by the way, required my copying libpython2.5.a to 
>> $HOME/Programs/lib.
> 
> Hmm. That doesn't quite sound right, but it's been a while since I 
> compiled the interpreter from source.

Sorry. To clarify, making libpython2.5a available in a $LD_LIBRARY_PATH 
was necessary to build numpy and scipy.

>> The text files Setup.config and Setup.local do not seem to have 
>> terribly specific information in them. Which file in particular should 
>> I inspect?
> 
> Makefile has most of that information. You can verify that distutils is 
> finding it like so:
> 
>  >>> from distutils import sysconfig
>  >>> sysconfig.get_makefile_filename()
> '/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/config/Makefile' 
> 
>  >>> d = sysconfig.parse_makefile(_)
>  >>> import pprint
>  >>> pprint.pprint(d)
> {'AR': 'ar',
>  ...
> }

This output from the check is here:
http://www.jamesstroud.com/build-scipy-logs/distutil-check.txt

I'm not sure if this is relevant to what you see in the check, but I 
installed scipy_distutils AFTER installing scipy.

>> I did not capture output from the build and I could not find a file 
>> with the word "log" in it that appears to be a build log. The jist of 
>> the problem is that first it can't find symbols from libpython2.5, 
>> then from   libthread, etc. Then, it complains about no "MAIN__" when 
>> linking the .so files with g77 and no "main" with gcc (which is 
>> curious), so I must include the -shared flag, after including 
>> -llibrary type flags for all of the libraries it doesn't know about.
> 
> What versions of gcc and g77 are you using?

euler 2% g77 -v
Reading specs from 
/auto_nfs/data10/users/jstroud/Programs/bin/../lib/gcc/i686-pc-linux-gnu/3.4.2/specs
Configured with: ./configure --prefix=/data1/users/jstroud/Programs : 
(reconfigured) ./configure --prefix=/data1/users/jstroud/Programs
Thread model: posix
gcc version 3.4.2
euler 3% gcc -v
Reading specs from 
/auto_nfs/data10/users/jstroud/Programs/bin/../lib/gcc/i686-pc-linux-gnu/3.4.2/specs
Configured with: ./configure --prefix=/data1/users/jstroud/Programs : 
(reconfigured) ./configure --prefix=/data1/users/jstroud/Programs
Thread model: posix
gcc version 3.4.2

>> If its necessary, I can run setup.py build again and send the output 
>> to a file and post that to scipy-dev if you think it might be helpful.
> 
> Yes, that is what I intended.
> 

This is posted here:
http://www.jamesstroud.com/build-scipy-logs/build-scipy-py2.5-euler.txt

For symmetry, similar output for numpy is posted here:
http://www.jamesstroud.com/build-scipy-logs/build-numpy-py2.5-euler.txt

Please let me know if I can be of any further help with these issues.

James



More information about the Python-list mailing list