From: Daniel L. <dan...@ma...> - 2005-01-14 16:00:25
|
On Jan 13, 2005, at 20:16, jyt...@li... wrote: > Message: 6 > From: "Laurent Ploix" <lau...@la...> > To: "'Badal, Chris F'" <chr...@hp...>, > <jyt...@li...> > Subject: RE : [Jython-users] Trouble loading classes at runtime > Date: Thu, 13 Jan 2005 16:44:34 +0100 > > You need to use slashes instead of backslashes when adding path to > sys.path. > > Don't ask me why. I don't know Mr. Van Rossum personally, by I believe it was because the Unix community, where Python was invented, had to standardize on something and he chose Unix style directory path separators which was intuitive on the platform. The 'back slash' is a common character for escapes e.g. \n \t \r and well as in regular expressions, so it would have been confusing to use that for directory paths just in python and nowhere else on the platform just to cater to Microsoft's use of a different path separator for DOS in the event Python was ported to Windows one day. Of course I could be wrong. <IMHO> In the case of Java unfortunately, Sun took the 'low road' and did not standardize as the creator of Python did, and allowed different 'classpath' separators for Java based on the platform. As a result, this has created confusion and a lot of forum traffic and discussion in Java and Jython groups ever since. It pays to stand on principle in the end--keep it simple and standard. Thanks Mr. Van Rossum. </IMHO> As an aside, one can check the system dependent path and other separators for Python using the 'os' module as in these result for Mac OS X (POSIX-compliant Unix) case : >>> import os >>> os.pathsep ':' >>> os.sep '/' >>> The first being the shell 'path' including 'classpath' and the second the file path separator. As always, RTFM. > > But if you want to import the class aa.bb in cc directory, you need to > have your path pointed to cc, not cc.aa > > bye > > Laurent Ploix > |