This post properly boils down to me begging Mads for help. I need to run pypvm for a school assigment, but it seems impossible to install on my MacBook.This is really something I don’t like. Programming frameworks should be easy to install. I hate wasting my time on something that isn’t really a part of the assignment. So.. to use pypvm, you have to install pvm (look at the pretty logo). This seems fair as the python stuff is just wrappers to the original C code. Installing pvm can be done – and should be done – through MacPorts. It’s as simple as writing:
$ sudo port install pvm
Right? Not quite.. This worked fine in OS X 10.4, but under leopard it generates an compile error looking like this:
../../src/pmsg.c:785: error: static declaration of 'xdr_float' follows non-static declaration.
This was pretty easy to solve though. This will work:
$ sudo port install pvm +darwin_8
So there.. We have pvm3 installed. Now for the pypvm. Running a make didn’t work out as one could hope for:
euler:pypvm-0.94 runebromer$ make gcc -pipe -DNDEBUG -g -Os -Wall -Wstrict-prototypes -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -I/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config -c ././pypvm_coremodule.c -o ./pypvm_coremodule.o ././pypvm_coremodule.c:2:18: error: pvm3.h: No such file or directory ././pypvm_coremodule.c: In function 'was_error':
No nice… But fair enough I guess.. So the file is located at /opt/local/include/pvm3.h so we just give that path to the configure script, right.. wrong!
euler:pypvm-0.94 runebromer$ ./configure --with-include-dir=/opt/local/include --with-lib-dir=/opt/local/lib checking host system type... configure: error: can not guess host type; you must specify one
This one took some time to solve. You can pass the host to configure all you want and call uname with all possible arguments to get the argument for configure, but it will always result in a ldconf error. This page helped though. The solution:
euler:pypvm-0.94 runebromer$ cp /usr/share/libtool/config.sub . euler:pypvm-0.94 runebromer$ cp /usr/share/libtool/config.guess .
So know we got past the configure. Running make didn’t help:
gcc -fPIC -O -I/usr/include/python1.5 -I/usr/lib/python1.5/config -DHAVE_CONFIG_H -c ./pypvm_coremodule.c ./pypvm_coremodule.c:1:20: error: Python.h: No such file or directory ./pypvm_coremodule.c:2:18: error: pvm3.h: No such file or directory
BUT I JUST TOLD YOU WHERE IT WAS.. So.. I wasted some hours tonight not getting started with my assignment.
The next assignment must be solved with MPI. And that’s just good. Look at this:
euler:tests runebromer$ sudo port install openmpi [snip - some output] euler:mpi runebromer$ sudo easy_install mpi4py [snip - more output] euler:tests runebromer$ /opt/local/bin/python2.4 helloworld.py Hello, World!! I am process 0 of 1 on euler.
Gimme a shell account with sudo access and I’ll fix it. That or try setting LD_LIBRARY_PATH or something like that.
Oh joy… Mads solved the problem. I don’t quite know what he did, but many many thanks..
Well, it seems that your python 2.4 installation’s libpython was broken. That and the fact that pypvm has include paths written directly in the Makefile.am. Thanks alot.
Lucky for me, someone packaged pypvm as a setuptools package. Installation was as simple as:
python setup.py install
http://biskit.pasteur.fr/install/short