Python scripts/extensions broken on Mac OS X Leopard Leopard
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Invalid
|
Undecided
|
Unassigned |
Bug Description
I'm using the standard Inkscape 0.46 Leopard download and OS X 10.5.6 Intel with the stock Python install. There are two problems I'm seeing.
First, if I choose the View->Scripts... menu item I get this message in the script pane:
# This is where you could type a script.
# However, no scripting languages have been compiled
# into Inkscape, so this window has no functionality.
# When compiling Inkscape, run "configure" with
# "--with-python" and/or "--with-perl".
This is obviously not desirable.
The second problem is a conflict with a MacPorts installation. Python-based extensions that use the inkex module can fail with this (misleading) message:
The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension. Please download and install the latest version from <http://
Printing out the *actual* exception instead of the canned message gives:
dlopen(
Referenced from: /opt/local/
Reason: Incompatible library version: libexslt.0.dylib requires version 10.0.0 or later, but libxml2.2.dylib provides version 9.0.0
My guess is what's happening is that libexslt.0.dylib is being loaded from /opt/local/lib (since it's not shipped with Inkscape) and it in turn tries to load libxml2.2.dylib from the same place, instead of loading the one shipped with Inkscape. However, that version of libxml is too old so we get the error.
To fix the error you should probably ship libexslt with Inkscape. As a workaround until you update your packages users can do:
cd /Applications/
ln -s /usr/libexslt*
tags: | added: extensions-plugins osx packaging |
I'm running Inkscape 0.47 on a Macbook with OS X 10.5.7 and Nathaniel's instructions helped. I'm now able to execute the built-in extensions for Inkscape. As admin on my machine I did:
> cd /Applications/ Inkscape. app/Contents/ Resources/ lib libexslt. 0.dylib . libexslt. dylib . libexslt. la .
lib> ln -s /usr/lib/
lib> ln -s /usr/lib/
lib> ln -s /usr/lib/
and that did the trick. I would never have figured this out without your help. Thanks Nathaniel. Btw, how did you get access to the "actual" exception?
Thanks,
Keith