Importing M2Crypto version 0.20.2 on python 2.6.5 fails when M2Crypto was compiled against a recent openssl versions (0.9.8x or higher) on MAC OS X 10.4.11:
Even though the compilation works against these openssl version, M2Crypto fails to import, because a missing symbol: _PEM_read_bio_EC_PUBKEY 
Python 2.6.5 (r265:79359, Mar 24 2010, 01:32:55) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.



import M2Crypto
      Traceback (most recent call last):
        File "", line 1, in 
        File "M2Crypto/init.py", line 22, in 
          import _m2crypto
      ImportError: dlopen(M2Crypto/_m2crypto.so, 2): Symbol not found: _PEM_read_bio_EC_PUBKEY
        Referenced from: M2Crypto/__m2crypto.so
        Expected in: dynamic lookup



If I compile M2Crypto against openssl version 0.9.7l or 0.9.7m it works just fine.
Any suggestion?
I don't have 10.4.11, but I do have 10.5.8 with Python 2.6.5 and OpenSSL 0.9.8n and everything works without a problem. Please try with latest M2Crypto. If that does not work, try getting and compiling OpenSSL yourself and configuring M2Crypto to use that. Maybe something is wrong with your current OpenSSL.
Symbol not found: _PEM_read_bio_EC_PUBKEY Importing M2Crypto-0.20.2 when compiled against openssl 0.9.8x or 1.0.0x