Access WeDo on OS X from a real programming language I'm trying to talk to the WeDo USB interface from Python or really any real programming language.

I tried the clever WeDoMore library, but can't get it to bind the WeDo. I think this is because the WeDo is a HID device and the built in Mac OS HID driver binds to it before libusb, a dependency of WeDoMore, get's a chance to. But, my understanding is a little shaky.

The developers of WeDoMore are quite helpful, but don't use Macs themselves.

Any hints that would get me talking to the WeDo would be greatly appreciated. Scratch works, but I'm looking for a more standard programming environment.
It is possible to drive the WeDo from Python on a Mac, without a kext.  I've only tested motors since I don't (yet) have the other sensors.  You need to access the USB HID device directly.  There are a couple of prerequisites to install:


cython-hidapi, which itself depends on 
hidapi; homebrew can install that for you.  
cython likewise


You'll likely want XCode and friends installed to be on the safe side.

There are a number of forks of cython-hidapi available so your mileage may vary depending on which version you use. I don't remember installation being problematic.

Once those are installed and your WeDo is plugged in you can do something, at a minimum, like:

import hid
import time

# vendor id, product id: 
dev = hid.device(1684, 3)

# turn both motors on
# HID format is reportID, message type, data1, data2, ...
dev.write([0x0, 0x40, 127, 127, 0x0, 0x0, 0x0, 0x0, 0x0])

time.sleep(1)

# turn them both off
dev.write([0x0, 0x40, 0, 0, 0x0, 0x0, 0x0, 0x0, 0x0])


The changes to get WeDoMore to use hidapi instead of generic usb on a Mac don't look to be too onerous.  If I manage to get something committed I'll update my answer with a link.

[Edit: I've committed a fork of WeDoMore that adds support for motors on the Mac here.  Again, I'll update if the pull request gets accepted]

Small side-note: The WeDo can also drive 9v motors with the correct converter cable.  I think it's possible to read the RCX sensors as well, but mild soldering may be required (see, e.g. here for a proof of concept).  But if the WeDo can be fooled into reading the devices then Python can be used with those other sensors.