From: tim_one at email.msn.com (Tim Peters) Date: Sat, 3 Apr 1999 07:54:54 GMT Subject: W9x "import" case sensitivity In-Reply-To: <37038658.FEAFF01F@palladion.com> References: <37038658.FEAFF01F@palladion.com> Message-ID: <000301be7da7$4277a3e0$879e2299@tim> Content-Length: 1968 X-UID: 100 [Tim sez he's never had a problem with case-sensitive imports under Win95, but that people at work do; speculates it may be due to non-Windows things, like network servers and old source-control systems, that change filename case seemingly at random ] [Tres Seaver] > On NT 4.0 SP3, with Python installed on NTFS E: drive: > > Python 1.5.2b1 (#0, Dec 10 1998, 11:29:56) [MSC 32 bit (Intel)] on win32 > Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam > >>> import SYS > Traceback (innermost last): > File "", line 1, in ? > import SYS > ImportError: No module named SYS > >>> import sys > >>> import HTMLLIB > Traceback (innermost last): > File "", line 1, in ? > import HTMLLIB > NameError: Case mismatch for module name HTMLLIB > (filename E:\tools\Python\Lib\htmllib.py) > >>> import htmllib > >>> > > (Note the different error messages.) This is not what I mean by having "a problem" -- this is working for you the same way as it works under e.g. Unix, which is the way it's documented to work. "A problem" would be if Python griped on the import htmllib line too, where the import-name case *does* match the distributed filename case. That's what I've seen happen at work, where the distributed filename case somehow or other "gets changed" by "something", so that the *correct* import statement doesn't work. That's never happened to me. The different error msgs you're getting are due to sys being a builtin module and not having a *file* named sys.py, Sys.py, SYs.py, sYs.py, sYS.py, syS.py, or sYs.py on your PYTHONPATH. Create a file with one of those names, and you'll get NameError instead of an ImportError when doing "import SYS". Python doesn't check the builtin modules name for case mismatches, and that's all that's going on here -- it may be seen as inconsistent, but this too works the same way across all platforms. caseclarifyingly y'rs - tim