Discuss / Python / 求教!

求教!

Topic source

Traceback (most recent call last): File "doflask.py", line 4, in <module> from flask import Flask File "C:\Users\Yufog Chan\AppData\Local\Programs\Python\Python35\lib\site-packages\flask_init.py", line 17, in <module> from werkzeug.exceptions import abort File "C:\Users\Yufog Chan\AppData\Local\Programs\Python\Python35\lib\site-packages\werkzeug\init.p y", line 152, in <module> import('werkzeug.exceptions') File "C:\Users\Yufog Chan\AppData\Local\Programs\Python\Python35\lib\site-packages\werkzeug\exceptions .py", line 71, in <module> from werkzeug.wrappers import Response File "C:\Users\Yufog Chan\AppData\Local\Programs\Python\Python35\lib\site-packages\werkzeug\wrappers.p y", line 36, in <module> from werkzeug.utils import cached_property, environ_property, \ File "C:\Users\Yufog Chan\AppData\Local\Programs\Python\Python35\lib\site-packages\werkzeug\utils.py", line 16, in <module> import pkgutil File "C:\Users\Yufog Chan\AppData\Local\Programs\Python\Python35\lib\pkgutil.py", line 5, in <module> import importlib.util File "C:\Users\Yufog Chan\AppData\Local\Programs\Python\Python35\lib\importlib\util.py", line 13, in < module> from contextlib import contextmanager ImportError: cannot import name 'contextmanager'

运行上一节内容的do_flask.py就出现的问题,请问如何解决?谢谢!

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

ImportError: cannot import name 'contextmanager'

找到原因了!原因如下,在当前目录有个名叫contextlib的文件,Python会先导入这个文件,然后再导入标准库里面的contextlib.py可以使用import contextlib print(contextlib.file)去看打印出的文件路径,如果不是下面类似的C:\Users\Yufog Chan\AppData\Local\Programs\Python\Python35\lib\contextlib.py,需要把当前目录下的文件删除或者重命名。 详情可以看看这里http://www.cnblogs.com/bluescorpio/archive/2013/03/20/2971435.html 也非常感谢廖老师!


  • 1

Reply