Lonnie Princehouse wrote:
As a further data point, it doesn't appear to happen under Cygwin with 2.4 either:I've run into some eccentric behavior... It appears that one of my modules is being cut off at exactly 2^14 characters when I try to import it. Has anyone else encountered this? I can't find any mention of such a bug, and stranger yet, other modules that exceed 16384 characters seem to work just fine.
In particular, suppose that my module foo.py contains the following as its last line:
thing = "goodbye world"
Now, suppose that the length of the file is 16383 characters. It works just fine:
Python 2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
import foo
But if I make the string longer, it explodes:
thing = "goodbye world spam spam spam spam spam"
Python 2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
import foo
Traceback (most recent call last): File "<stdin>", line 1, in ? File "foo.py", line 583 thing = "goodbye world sp ^ SyntaxError: EOL while scanning single-quoted string
What in the world is going on here?!
This happens with Python 2.4 and 2.3.4 on win2k (under vmware), but it does _not_ happen with 2.3.4 on Linux. Very strange! Could vmware be the problem?
I have also tried replacing my unix newlines with DOS \r\n with the exact same result.
I don't want to spend much time on this, since the workaround of splitting the code into smaller files works just fine, but wow.. weird.
[EMAIL PROTECTED] ~ $ wc module.py 8177 2 8191 module.py
[EMAIL PROTECTED] ~ $ python Python 2.4 (#1, Dec 4 2004, 20:10:33) [GCC 3.3.3 (cygwin special)] on cygwin Type "help", "copyright", "credits" or "license" for more information. >>> import module hello >>>
[EMAIL PROTECTED] ~ $ vi module.py
[EMAIL PROTECTED] ~ $ wc module.py 8177 5 8206 module.py
[EMAIL PROTECTED] ~ $ python Python 2.4 (#1, Dec 4 2004, 20:10:33) [GCC 3.3.3 (cygwin special)] on cygwin Type "help", "copyright", "credits" or "license" for more information. >>> import module hello spam spam spam
Is it possible you've somehow inserted non-printing characters? Seems bizarrely improbable to me that 2^14 would be a significant boundary to the interpreter.
regards Steve -- Steve Holden http://www.holdenweb.com/ Python Web Programming http://pydish.holdenweb.com/ Holden Web LLC +1 703 861 4237 +1 800 494 3119 -- http://mail.python.org/mailman/listinfo/python-list
