True, looks like it's important to use a C module if available:
In [13]: from M2Crypto.EVP import pbkdf2
In [14]: %time pbkdf2('mypassword', open('/dev/urandom').read(16), 250000, 32) CPU times: user 1.16 s, sys: 0.02 s, total: 1.18 s Wall time: 1.18 s