[vtk-developers] problems with VTK python module installation on OSX (after a custom build)
Darren Weber
darren.weber.lists at gmail.com
Tue Sep 2 18:35:06 EDT 2008
I've discovered a minor problem with the VTK python installation (from
build) on OSX. I'm basically having library path issues and I don't know
how to bend VTK build-install to fit OSX python or how to bend OSX python to
use the default VTK install paths.
First, some explanation of the OSX python installation(s).
The OSX python installation is a framework that's installed into
/System/Library/Frameworks/Python.framework
AND
/Library/Frameworks/Python.framework
I'm no expert on python installations for OSX, so I'm puzzled, even confused
by the installation "polymorphism". It get's better. If you use macports,
you can also have an installation somewhere below /opt/local/.... Moreover,
each of these installation paths has the capacity for management of multiple
versions of python - that's becoming standard fare on most platforms (I
think). So, for example, under /Library/.... there are a bunch of symlinks
to manage the current version, eg (under the /System path):
weber-mbp:Python root# ls -l
/System/Library/Frameworks/Python.framework/Versions/
total 8
drwxr-xr-x 7 root wheel 238 Feb 21 2008 2.3
drwxr-xr-x 11 root wheel 374 Aug 22 17:59 2.5
lrwxr-xr-x 1 root wheel 3 Feb 21 2008 Current -> 2.5
weber-mbp:Python root#
AND (under the /Library path):
weber-mbp:Python root# ls -l /Library/Frameworks/Python.framework/
total 24
lrwxr-xr-x 1 root admin 24 Aug 29 16:13 Headers ->
Versions/Current/Headers
lrwxr-xr-x 1 root admin 23 Aug 29 16:13 Python ->
Versions/Current/Python
lrwxr-xr-x 1 root admin 26 Aug 29 16:13 Resources ->
Versions/Current/Resources
drwxr-xr-x 4 root admin 136 Feb 21 2008 Versions
weber-mbp:Python root# ls -l /Library/Frameworks/Python.framework/Versions/
total 8
drwxrwxr-x 10 admin admin 340 Feb 21 2008 2.5
lrwxr-xr-x 1 root admin 3 Aug 29 16:13 Current -> 2.5
As far as I can tell, there are no symlinks between these installations to a
common path, so they appear to be entirely independent installations.
That's probably to protect the "system" installation from other "library"
installations (eg, I downloaded an install package directly from the
python.org site and I think it installs into the /Library path).
NOW, the VTK installation script sets the --prefix="/usr/local/" when doing
the install. In my case, the install command was echoed to the screen
during 'make install' as follows:
running cd "/Users/dweber/src/kitware/VTK_build/Wrapping/Python" &&
/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5 setup.py
install --prefix="/usr/local" 2>&1
So this is the only site-package in the /usr/local python path, ie:
[ dweber at weber-mbp ~/src/kitware/VTK_build ]$ ll
/usr/local/lib/python2.5/site-packages/
total 4.0K
-rw-r--r-- 1 root wheel 248 Sep 2 14:42 VTK-5.2.0-py2.5.egg-info
drwxr-xr-x 54 root wheel 1.8K Sep 2 14:42 vtk/
That is, it seems this is not the default installation path for python
modules on OSX. So, when I started the default python shell and tried to
import vtk, it failed with a message about no module found :-(
I then took some care to specify my default python installation for the bash
shell (I chose to use the /Library/... path as my default). I then double
checked this setting in the ccmake config and ran the build again. This
time, I noticed that the installation went into /usr/local again. Then I
ran a post-install command as root:
# cd <VTK_build_path>/Wrapping/Python/
# /Library/Frameworks/Python.framework/Versions/Current/bin/python setup.py
install 2>&1
Without the --prefix option for the installation, this installed into the
/Library/... path, ie:
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/vtk
However, despite my attempt to get the module installed in the "right"
place, I get this traceback during the import:
dweber at weber-mbp ~/src/kitware/VTK_build ]$ which python
/Library/Frameworks/Python.framework/Versions/Current/bin/python
[ dweber at weber-mbp ~/src/kitware/VTK_build ]$
[ dweber at weber-mbp ~/src/kitware/VTK_build ]$ python
Python 2.5.2 (r252:60911, Feb 22 2008, 07:57:53)
[GCC 4.0.1 (Apple Computer, Inc. build 5363)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import vtk
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/vtk/__init__.py",
line 41, in <module>
from common import *
File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/vtk/common.py",
line 7, in <module>
from libvtkCommonPython import *
ImportError:
dlopen(/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/vtk/libvtkCommonPython.so,
10): Library not loaded: libvtkCommonPythonD.5.2.dylib
Referenced from:
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/vtk/libvtkCommonPython.so
Reason: image not found
>>>
This is where the libvtkCommon* libs are at:
/usr/local/lib/python2.5/site-packages/vtk/libvtkCommonPython.so
/usr/local/lib/vtk-5.2/libvtkCommonPythonD.5.2.0.dylib
/usr/local/lib/vtk-5.2/libvtkCommonPythonD.5.2.dylib
/usr/local/lib/vtk-5.2/libvtkCommonPythonD.dylib
So then I get crazy with symlink hacks like this:
$ cd
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/vtk
### First I verify how to run a for loop to get all the dylib files:
$ for f in *.so; do nf=`basename $f .so`; echo ""; echo $nf; echo `ls -l
/usr/local/lib/vtk-5.2/${nf}D.dylib` ; done
### Then I create all the symlinks:
$ for f in *.so; do nf=`basename $f .so`; echo ""; echo "${nf}D.dylib"; ln
-s /usr/local/lib/vtk-5.2/${nf}D.dylib ${nf}D.dylib ; done
However, that doesn't work because the symlinks are not specific to the VTK
version.... so:
$ cd
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/vtk
$ rm *.dylib
$ for f in *.so; do nf=`basename $f .so`; echo ""; echo "${nf}D.dylib"; ln
-s /usr/local/lib/vtk-5.2/${nf}D.5.2.dylib ${nf}D.5.2.dylib ; done
BUT, it still doesn't work....
As you can see, I'm in OSX library hell with no thread to find my way back
out! (Things are so much easier on Debian - Ubuntu!).
Any help much appreciated!
Thanks, Darren
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20080902/81103ea0/attachment.html>
More information about the vtk-developers
mailing list