I’m new to Inkscape and have been trying a small handful of tutorials I’ve found online. In the middle of a compass-making tutorial, while trying to use “Path to Pattern Effect”, I ran into the following wall:
The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension. Please download and install the latest version from http://cheeseshop.python.org/pypi/lxml/, or install it through your package manager by a command like: sudo apt-get install python-lxml
Confession: I missed the Open Source boat, more or less. I have no taste for code. I consider myself fluent on my Mac, but Java, Python, Terminal, it’s all, well, not exactly Greek to me, but it is rather foreign. At the same time, I see that more and more people are obtaining a certain fluency in these languages, and I also understand that there’s considerable overlap from one to another, so that what one learns of a particular code language is like a dialect of another. One advantage of being an American expat in this regard is that I’ve become adept at listening to a conversation in a foreign language (in my case, Latvian) and picking up the gist of it even though I may lose the details.
As I said, I’m new to Inkscape. I’m working on a multi-movement, electroacoustic multimedia piece, and have decided that for one of the movements one of the things I want to try is use Inkscape and Processing to create an animated graphic score to be projected before the audience that the musicians will also read.
I spent most of the day working on fixing this problem. And there were plenty of forum posts about this issue, but the only one I found that seems to have resolved it suggested an upgrade to the development version of Inkscape (0.47), but that alone did not do the trick for me. So here’s the sum total of everything I did that DID work for me, plus how I would do it now, knowing what I do know.
Inkscape. First of all, looking at the contents of the Inkscape application (Control-Click on Inkscape.app/Show Package Contents/Contents/Resources), I could see that the extensions Inkscape was looking for were not present. I upgraded to Inkscape development ver. 0.47. The necessary extensions were not there either. Strike one.
Python. Maybe since the extension is related to Python (or at least that what I thought), I need to upgrade Python? Upgraded to Python 3.1. No change. Clearly, I don’t know what I’m doing.
X11. At some point, somewhere, I read that I should upgrade X11 (necessary for Inkscape to run on a Mac) to X-Quartz 2.4.0. No change. Sigh. Hit the desk.
Macports. Somewhere along the line, I stumble upon Macports. “The MacPorts Project is an open-source community initiative to design an easy-to-use system for compiling, installing, and upgrading either command-line, X11 or Aqua based open-source software on the Mac OS X operating system. To that end we provide the command-line driven MacPorts software package under a BSD License, and through it easy access to thousands of ports that greatly simplify the task of compiling and installing open-source software on your Mac.” Sounds good to me! I install version 1.8, and follow the guide for the first three chapters. I poke around, am able to look at ports, find Python lxml and libxml2 ports but am getting an error (I forget now what it was, but I googled it at the time and didn’t feel particularly enlightened) when I try to install. Back to the guide. By Chapter 4 I feel lost.
Porticus. Again, somewhere along the line I discover Porticus, “a Cocoa GUI (Graphical User Interface) for the MacPorts package manager. MacPorts provides ready to build open-source software packages modified to compile and run on Mac OS X. The MacPorts project provides a TCL command line tool to manage installation, update and activation of the port packages. Porticus provides a GUI front-end to this tool.” Now we’re talking! No code! I try it, find the find Python lxml and libxml2 ports but am still getting an error. For some reason, because I was given the error not in Terminal but in Porticus, I don’t feel so stupid.
Back to Macports.org, this time to the FAQ page, because I can’t believe what they’re calling a guide over there is guiding anyone. There, I read: “You need to install Xcode. Ensure you include both X11SDK and Unix Development. Some ports need newer versions of Xcode than that which ships with the OS, and will fail to install due to that requirement. Xcode is not updated via Software Update, you have to download it manually. To do so, go to http://connect.apple.com/ and log in with your ADC information (the free online account is enough to get access to Xcode). Once you log in, go to Downloads, then select Developer Tools on the right section under Downloads. You can then search for Xcode (there are quite a few versions available, make sure to get the latest for your OS version).”
Sure enough, I do a search on my Mac, and don’t find X11SDK. I head over to Apple Development and download and install Xcode 3.1. If you do the basic install, you get the Unix Development package automatically. I manually installed X11SDK, which is part of the same .dmg file.
I go back to Porticus and try installing the ports again. VoilÃ ! 12 ports show up (the necessary ports and their dependencies). I fire up Inkscape again, and finally, FINALLY! No error message! It worked!
So, if I had to do it again, I would start by going directly to the ADC site and get Xcode. Download Macports if you don’t have it. I realized after the fact that if I had followed the instructions here, I would not have needed Porticus.
This all may become quite moot if you upgrade to Snow Leopard. I don’t know yet. My Snow Leopard disc is in the mail. But if you do, Xcode 3.2 is already at the ADC site for Snow Leopard. In any case, enjoy the stupid compass.