[CMake] problems with VTK python module installation on OSX (after a custom build)
Darren Weber
darren.weber.lists at gmail.com
Tue Sep 2 20:36:13 EDT 2008
Well, maybe not. Even after adding a value to ~/.MacOSX/environment.plist,
the library load problem persists.
[ dweber at elegans ~ ]$ echo $PYTHONPATH
/usr/local/lib/python2.5/site-packages
[ dweber at elegans ~ ]$
[ dweber at elegans ~ ]$ 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 "/usr/local/lib/python2.5/site-packages/vtk/__init__.py", line 41, in
<module>
from common import *
File "/usr/local/lib/python2.5/site-packages/vtk/common.py", line 7, in
<module>
from libvtkCommonPython import *
ImportError:
dlopen(/usr/local/lib/python2.5/site-packages/vtk/libvtkCommonPython.so,
10): Library not loaded: libvtkCommonPythonD.5.2.dylib
Referenced from:
/usr/local/lib/python2.5/site-packages/vtk/libvtkCommonPython.so
Reason: image not found
>>> import sys
>>> print sys.path
['', '/usr/local/lib/python2.5/site-packages',
'/Library/Frameworks/Python.framework/Versions/2.5/lib/python25.zip',
'/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5',
'/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-darwin',
'/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac',
'/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac/lib-scriptpackages',
'/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk',
'/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages']
>>>
[ dweber at elegans ~ ]$
On Tue, Sep 2, 2008 at 5:29 PM, Darren Weber
<darren.weber.lists at gmail.com>wrote:
>
> For the record, this page may provide the answer to appending the
> PYTHONPATH on OSX
> http://developer.apple.com/qa/qa2001/qa1067.html
>
>
>
> On Tue, Sep 2, 2008 at 3:49 PM, Darren Weber <darren.weber.lists at gmail.com
> > wrote:
>
>>
>> I've tried to bend python a little using the sys.path, but this also
>> fails:
>>
>>
>> [ dweber at weber-mbp ~/src/kitware/VTK_build ]$ pythonPython 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 sys
>> >>> sys.path.append('/usr/local/lib/python2.5/site-packages')
>> >>> print sys.path
>> ['', '/Library/Frameworks/Python.framework/Versions/2.5/lib/python25.zip',
>> '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5',
>> '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-darwin',
>> '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac',
>> '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac/lib-scriptpackages',
>> '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk',
>> '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload',
>> '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages',
>> '/usr/local/lib/python2.5/site-packages']
>> >>>
>> >>> import vtk
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> File "/usr/local/lib/python2.5/site-packages/vtk/__init__.py", line 41,
>> in <module>
>> from common import *
>> File "/usr/local/lib/python2.5/site-packages/vtk/common.py", line 7, in
>> <module>
>> from libvtkCommonPython import *
>> ImportError:
>> dlopen(/usr/local/lib/python2.5/site-packages/vtk/libvtkCommonPython.so,
>> 10): Library not loaded: libvtkCommonPythonD.5.2.dylib
>> Referenced from:
>> /usr/local/lib/python2.5/site-packages/vtk/libvtkCommonPython.so
>> Reason: image not found
>>
>> >>>
>>
>>
>>
>>
>>
>>
>> On Tue, Sep 2, 2008 at 3:35 PM, Darren Weber <
>> darren.weber.lists at gmail.com> wrote:
>>
>>>
>>> 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://www.cmake.org/pipermail/cmake/attachments/20080902/69a35297/attachment.htm>
More information about the CMake
mailing list