error importing smtplib

Terry Reedy tjreedy at
Thu Nov 15 17:57:23 CET 2012

On 11/15/2012 9:38 AM, Eric Frederich wrote:
> Hello,
> I created some bindings to a 3rd party library.
> I have found that when I run Python and import smtplib it works fine.
> If I first log into the 3rd party application using my bindings however
> I get a bunch of errors.
> What do you think this 3rd party login could be doing that would affect
> the ability to import smtp lib.

I don't know what 'login' actually means,...

> This works...
> import smtplib
> FOO_login()
> This doesn't...
> FOO_login()
> import smtplib

but my first guess is that FOO_login alters the module search path so 
that at least one of smtplib, hashlib, or the _xxx modules imported by 
hashlib is being imported from a different place. To check that

import sys
before = sys.path
print sys.path==before

Similar code can check anything else accessible through sys.

> Errors.....
>  >>> import smtplib
> ERROR:root:code for hash sha224 was not found.

I am puzzled by this line before the traceback. I cannot find 'ERROR' in 
either smtplib or hashlib.

> Traceback (most recent call last):
>    File "/opt/foo/python27/lib/python2.7/", line 139, in <module>
>      globals()[__func_name] = __get_hash(__func_name)
>    File "/opt/foo/python27/lib/python2.7/", line 103, in
> __get_openssl_constructor
>      return __get_builtin_constructor(name)
>    File "/opt/foo/python27/lib/python2.7/", line 91, in
> __get_builtin_constructor
>      raise ValueError('unsupported hash type %s' % name)
> ValueError: unsupported hash type sha224
[snip similar messages]

It is also unusual to get multiple tracebacks. *Exactly* how are you 
running python and is 2.7 what you intend to run?

Terry Jan Reedy

More information about the Python-list mailing list