I couldn't get manual exposure to work with any of the above python-only solutions (didn't try v4l2 method), in conjunction with the VideoCapture read() method. Replacing read() with grab() and retrieve() worked for me. I believe this has to do with having 2 webcams on my system ...