[Tutor] function won't import from module

Dick Moores rdm at rcblue.com
Tue Aug 9 06:41:37 CEST 2005

I have a bunch of functions I've collected in one script, "mycalc.py", 
which I use as a module, "mycalc". The last one I wrote, cmpSeq() is as 

===========begin code==============
def cmpSeq(seq1, seq2):
     find first index at which two sequences differ
     if seq1 == seq2:
         print "Sequences are identical, and of length %d" % len(seq1)
         return None
     if len(seq1) >= len(seq2):
         shorterOrEqualSequence = seq2
         shorterOrEqualSequence = seq1

     for index in range(len(shorterOrEqualSequence)):
         if seq1[index] != seq2[index]:
             print "sequences first differ at index", index
             print "seq1[%d] = %s" % (index, seq1[index])
             print "seq2[%d] = %s" % (index, seq2[index])

     if index == len(shorterOrEqualSequence)-1:
         print "sequences are identical thru end of shorter sequence at 
index", index

     print "len(seq1) =", len(seq1)
     print "len(seq2) =", len(seq2)
========end code for cmpSeq()=========

In a script, cmpSeq() works fine. For example followed by

a = "qwertys"
b = "qxerty"

The output is:

sequences first differ at index 1
seq1[1] = w
seq2[1] = x
len(seq1) = 7
len(seq2) = 6

cmpSeq() is now copy-pasted into mycalc.py, but is not useable there:

import mycalc
a = "qwerty"
b = "qxerty"

which produces:

Traceback (most recent call last):
   File "C:\Python24\MyScripts\testof_cmpSeq.py", line 1, in -toplevel-
     from mycalc import cmpSeq
ImportError: cannot import name cmpSeq

However, other functions in mycalc work fine. For example:

import mycalc

seconds = 87658

This outputs   24 hours, 20 minutes, 58 seconds

That may have been a bit long-winded; if so, I apologize.

But would someone please point out why cmpSeq() can't be imported from 


Dick Moores

More information about the Tutor mailing list