the problem of import module
Peter Otten
__peter__ at web.de
Fri Mar 7 03:02:55 EST 2008
fts2012 at gmail.com wrote:
> follow the dive into python
> -----------------------------------------------------------------
>>>> import sys
>>>> sys.path
>>>> sys.path.append('E
\achieve\book\diveintopython-pdfzh-cn-5.4b\diveintopythonzh-cn-5.4b\py')
> -----------------------------------------------------------------
> I append the filepath of <<dive into python>>'s examples into
> sys.path,but
> -----------------------------------------------------------------
>>>> sys.path
> ['C:\\Python25\\Lib\\idlelib', 'C:\\WINDOWS\\system32\\python25.zip',
> 'C:\\Python25\\DLLs', 'C:\\Python25\\lib', 'C:\\Python25\\lib\\plat-
> win', 'C:\\Python25\\lib\\lib-tk', 'C:\\Python25', 'C:\\Python25\\lib\
> \site-packages', 'E:\x07chieve\x08ook\\diveintopython-pdfzh-cn-5.4b\
> \diveintopythonzh-cn-5.4b\\py']
>>>> import fileinfo#fileinfo is a module in the path
>
> Traceback (most recent call last):
> File "<pyshell#5>", line 1, in <module>
> import fileinfo
> ImportError: No module named fileinfo
>
> -----------------------------------------------------------------
> Can anyone tell me the reason of the above and how to add paths to
> python path except adding them in the enviroment path.
> Thanks.
The path you append to sys.path is not properly escaped:
>>> "E:\archive"
'E:\x07rchive' # \a has become the single character chr(7)
Use double backslashes or raw strings instead:
>>> "E:\\archive"
'E:\\archive'
>>> r"E:\archive"
'E:\\archive'
When you print it the extra backslash will be gone:
>>> print "E:\\archive" # \\ is the escape sequence for the backslash
E:\archive
Peter
More information about the Python-list
mailing list