Hello all, I try to write an email application in python for which I need to import the smtplib module. Appearently this module itself requires the base64MIME module, which is located in the module sub directory 'email'. Now the module is there, but when running the script it can't be found. In the python interactive mode 'import smtplib' works the SECOND time(?!?!). The first time i get an error message: ... import smtplib File "/usr/lib/python2.3/smtplib.py", line 48, in ? from email.base64MIME import encode as encode_base64 ImportError: No module name baseMIME64 I have seen this bug(?) being reported & solved by the Debian crew, so I thought this might be related to the distribution (in my case Gentoo). Some details: Python : 2.3.5 GCC : 3.3.5 Gentoo Lin: 3.3.5-r1, ssp-3.3.3-3, pie -8.7.7.1 on linux2 Any help will be appreciated! Kind regards, Arjan Reproducible: Always Steps to Reproduce: 1. start python 2.3.5 2. >>>import smtplib 3. Actual Results: Error message appears: ... import smtplib File "/usr/lib/python2.3/smtplib.py", line 48, in ? from email.base64MIME import encode as encode_base64 ImportError: No module named base64MIME Module exits though! Expected Results: Just load the module smtplib without returning an error.
well, is there a file called /usr/lib/python2.3/email/base64MIME.py ? if there isn't then something might have gone wrong during the merge that caused it to be omitted. can you also check whether /var/db/pkg/dev-lang/python-*/CONTENTS has it as well?
Hello Alastair, /usr/lib/python2.3/email/base64MIME.py exists, just as well as it is listed in /var/db/pkg/dev-lang/python-*/CONTENTS Is there any othet 'PATH' variable which might be of importance? Kind regards, Arjan
i can't reproduce this. can you run: python -v -c 'import smtplib' and give us the output?
Dear Alastair, I have executed python -v -c 'import smtplib': Please keep in mind that when I execute this module a second time, it doesn't complain... Many thanks & good luck, Arjan This was echoed: # installing zipimport hook import zipimport # builtin # installed zipimport hook # /usr/lib/python2.3/site.pyc matches /usr/lib/python2.3/site.py import site # precompiled from /usr/lib/python2.3/site.pyc # /usr/lib/python2.3/os.pyc matches /usr/lib/python2.3/os.py import os # precompiled from /usr/lib/python2.3/os.pyc import posix # builtin # /usr/lib/python2.3/posixpath.pyc matches /usr/lib/python2.3/posixpath.py import posixpath # precompiled from /usr/lib/python2.3/posixpath.pyc # /usr/lib/python2.3/stat.pyc matches /usr/lib/python2.3/stat.py import stat # precompiled from /usr/lib/python2.3/stat.pyc # /usr/lib/python2.3/UserDict.pyc matches /usr/lib/python2.3/UserDict.py import UserDict # precompiled from /usr/lib/python2.3/UserDict.pyc # /usr/lib/python2.3/copy_reg.pyc matches /usr/lib/python2.3/copy_reg.py import copy_reg # precompiled from /usr/lib/python2.3/copy_reg.pyc # /usr/lib/python2.3/types.pyc matches /usr/lib/python2.3/types.py import types # precompiled from /usr/lib/python2.3/types.pyc # /usr/lib/python2.3/warnings.pyc matches /usr/lib/python2.3/warnings.py import warnings # precompiled from /usr/lib/python2.3/warnings.pyc # /usr/lib/python2.3/linecache.pyc matches /usr/lib/python2.3/linecache.py import linecache # precompiled from /usr/lib/python2.3/linecache.pyc import encodings # directory /usr/lib/python2.3/encodings # /usr/lib/python2.3/encodings/__init__.pyc matches /usr/lib/python2.3/encodings/__init__.py import encodings # precompiled from /usr/lib/python2.3/encodings/__init__.pyc # /usr/lib/python2.3/codecs.pyc matches /usr/lib/python2.3/codecs.py import codecs # precompiled from /usr/lib/python2.3/codecs.pyc import _codecs # builtin # /usr/lib/python2.3/encodings/aliases.pyc matches /usr/lib/python2.3/encodings/aliases.py import encodings.aliases # precompiled from /usr/lib/python2.3/encodings/aliases.pyc # /usr/lib/python2.3/encodings/ascii.pyc matches /usr/lib/python2.3/encodings/ascii.py import encodings.ascii # precompiled from /usr/lib/python2.3/encodings/ascii.pyc Python 2.3.5 (#1, Feb 21 2005, 23:00:18) [GCC 3.3.5 (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1)] on linux2 Type "help", "copyright", "credits" or "license" for more information. # /usr/lib/python2.3/smtplib.pyc matches /usr/lib/python2.3/smtplib.py import smtplib # precompiled from /usr/lib/python2.3/smtplib.pyc # /usr/lib/python2.3/socket.pyc matches /usr/lib/python2.3/socket.py import socket # precompiled from /usr/lib/python2.3/socket.pyc dlopen("/usr/lib/python2.3/lib-dynload/_socket.so", 2); import _socket # dynamically loaded from /usr/lib/python2.3/lib-dynload/_socket.so dlopen("/usr/lib/python2.3/lib-dynload/_ssl.so", 2); import _ssl # dynamically loaded from /usr/lib/python2.3/lib-dynload/_ssl.so import errno # builtin # /usr/lib/python2.3/re.pyc matches /usr/lib/python2.3/re.py import re # precompiled from /usr/lib/python2.3/re.pyc # /usr/lib/python2.3/sre.pyc matches /usr/lib/python2.3/sre.py import sre # precompiled from /usr/lib/python2.3/sre.pyc # /usr/lib/python2.3/sre_compile.pyc matches /usr/lib/python2.3/sre_compile.py import sre_compile # precompiled from /usr/lib/python2.3/sre_compile.pyc import _sre # builtin # /usr/lib/python2.3/sre_constants.pyc matches /usr/lib/python2.3/sre_constants.py import sre_constants # precompiled from /usr/lib/python2.3/sre_constants.pyc # /usr/lib/python2.3/sre_parse.pyc matches /usr/lib/python2.3/sre_parse.py import sre_parse # precompiled from /usr/lib/python2.3/sre_parse.pyc # /usr/lib/python2.3/string.pyc matches /usr/lib/python2.3/string.py import string # precompiled from /usr/lib/python2.3/string.pyc dlopen("/usr/lib/python2.3/lib-dynload/strop.so", 2); import strop # dynamically loaded from /usr/lib/python2.3/lib-dynload/strop.so # /usr/lib/python2.3/rfc822.pyc matches /usr/lib/python2.3/rfc822.py import rfc822 # precompiled from /usr/lib/python2.3/rfc822.pyc dlopen("/usr/lib/python2.3/lib-dynload/time.so", 2); import time # dynamically loaded from /usr/lib/python2.3/lib-dynload/time.so # /usr/lib/python2.3/base64.pyc matches /usr/lib/python2.3/base64.py import base64 # precompiled from /usr/lib/python2.3/base64.pyc dlopen("/usr/lib/python2.3/lib-dynload/binascii.so", 2); import binascii # dynamically loaded from /usr/lib/python2.3/lib-dynload/binascii.so # /usr/lib/python2.3/hmac.pyc matches /usr/lib/python2.3/hmac.py import hmac # precompiled from /usr/lib/python2.3/hmac.pyc import email # directory /usr/lib/python2.3/email # /usr/lib/python2.3/email/__init__.pyc matches /usr/lib/python2.3/email/__init__.py import email # precompiled from /usr/lib/python2.3/email/__init__.pyc # /usr/lib/python2.3/email/base64MIME.pyc matches /usr/lib/python2.3/email/base64MIME.py import email.base64MIME # precompiled from /usr/lib/python2.3/email/base64MIME.pyc # /usr/lib/python2.3/email/Utils.pyc matches /usr/lib/python2.3/email/Utils.py import email.Utils # precompiled from /usr/lib/python2.3/email/Utils.pyc # /usr/lib/python2.3/random.pyc matches /usr/lib/python2.3/random.py import random # precompiled from /usr/lib/python2.3/random.pyc dlopen("/usr/lib/python2.3/lib-dynload/math.so", 2); import math # dynamically loaded from /usr/lib/python2.3/lib-dynload/math.so dlopen("/usr/lib/python2.3/lib-dynload/_random.so", 2); import _random # dynamically loaded from /usr/lib/python2.3/lib-dynload/_random.so dlopen("/usr/lib/python2.3/lib-dynload/cStringIO.so", 2); import cStringIO # dynamically loaded from /usr/lib/python2.3/lib-dynload/cStringIO.so # /usr/lib/python2.3/email/_parseaddr.pyc matches /usr/lib/python2.3/email/_parseaddr.py import email._parseaddr # precompiled from /usr/lib/python2.3/email/_parseaddr.pyc # /usr/lib/python2.3/quopri.pyc matches /usr/lib/python2.3/quopri.py import quopri # precompiled from /usr/lib/python2.3/quopri.pyc # /usr/lib/python2.3/email/Encoders.pyc matches /usr/lib/python2.3/email/Encoders.py import email.Encoders # precompiled from /usr/lib/python2.3/email/Encoders.pyc # /usr/lib/python2.3/email/_compat22.pyc matches /usr/lib/python2.3/email/_compat22.py import email._compat22 # precompiled from /usr/lib/python2.3/email/_compat22.pyc # /usr/lib/python2.3/__future__.pyc matches /usr/lib/python2.3/__future__.py import __future__ # precompiled from /usr/lib/python2.3/__future__.pyc # clear __builtin__._ # clear sys.path # clear sys.argv # clear sys.ps1 # clear sys.ps2 # clear sys.exitfunc # clear sys.exc_type # clear sys.exc_value # clear sys.exc_traceback # clear sys.last_type # clear sys.last_value # clear sys.last_traceback # clear sys.path_hooks # clear sys.path_importer_cache # clear sys.meta_path # restore sys.stdin # restore sys.stdout # restore sys.stderr # cleanup __main__ # cleanup[1] cStringIO # cleanup[1] site # cleanup[1] encodings # cleanup[1] __future__ # cleanup[1] errno # cleanup[1] sre_constants # cleanup[1] _codecs # cleanup[1] email # cleanup[1] math # cleanup[1] zipimport # cleanup[1] email._compat22 # cleanup[1] encodings.ascii # cleanup[1] quopri # cleanup[1] email.Encoders # cleanup[1] codecs # cleanup[1] smtplib # cleanup[1] strop # cleanup[1] sre # cleanup[1] signal # cleanup[1] posix # cleanup[1] encodings.aliases # cleanup[1] exceptions # cleanup[1] sre_parse # cleanup[1] hmac # cleanup[1] sre_compile # cleanup[1] rfc822 # cleanup[1] _sre # cleanup[1] email._parseaddr # cleanup[1] email.base64MIME # cleanup[1] email.Utils # cleanup[1] re # cleanup[1] string # cleanup[1] warnings # cleanup[1] types # cleanup[1] socket # cleanup[1] random # cleanup[1] linecache # cleanup[1] time # cleanup[1] base64 # cleanup[1] _ssl # cleanup[1] _random # cleanup[1] _socket # cleanup[1] binascii # cleanup[2] copy_reg # cleanup[2] posixpath # cleanup[2] os.path # cleanup[2] stat # cleanup[2] UserDict # cleanup[2] os # cleanup sys # cleanup __builtin__ # cleanup ints: 32 unfreed ints in 3 out of 4 blocks # cleanup floats: 28 unfreed floats in 1 out of 1 block
btw, you say that this bug was solved by the debian project? can you give us a link to where you found the report? also, could you attach your emerge info?
this bug requires more info. please reopen if there is more information that can be provided to track down this bug.