2015-07-10 84 views
0

我试图导入Flask时面临下面的错误。张贴类似的问题有问题与WERKZEUG版本Flask(本地路径中的urllib)导入错误

from urllib.request import parse_http_list as _parse_list_header 
ImportError: No module named request 

File "init__.py", line 25, in <module> 
    from flask import Flask 
File "user/anaconda/lib/python2.7/site-packages/flask/__init__.py", line 17, 
in <module> 
    from werkzeug.exceptions import abort 
File "user/anaconda/lib/python2.7/site-packages/werkzeug/__init__.py", line  
154, in <module> 
    __import__('werkzeug.exceptions') 
File "user/anaconda/lib/python2.7/site-packages/werkzeug/exceptions.py", line 
71, in <module> 
    from werkzeug.wrappers import Response 
File "user/anaconda/lib/python2.7/site-packages/werkzeug/wrappers.py", line 
26, in <module> 
    from werkzeug.http import HTTP_STATUS_CODES, \ 
File "user/anaconda/lib/python2.7/site-packages/werkzeug/http.py", line 28, in 
<module> 
    from urllib.request import parse_http_list as _parse_list_header 
ImportError: No module named request' 
  1. WERKZEUG版本(我试着用10.1,10.4)仍然是错误仍然存​​在。

  2. 有人指出,可能存在的urllib2的本地副本..我 想通了,就在我 本地路径.. /Library/Frameworks/Python.framework/Versions/既urllib而确实的urllib2 2.7/lib/python2.7

现在我不知道如何继续,应该卸载urllib/urllib2吗?

编辑:在Tried to use relative imports, and broke my import paths?中列出的解决方案不适合我。在这种情况下,我想进口的urllib2到我的瓶项目,并打印出的文件路径,但抛出下列例外

File "/user/__init__.py", line 25, in <module> 
    import urllib2 
File "/user/anaconda/lib/python2.7/urllib2.py", line 94, in <module> 
    import httplib 
File "/user/anaconda/lib/python2.7/httplib.py", line 80, in <module> 
    import mimetools 
File "/user/anaconda/lib/python2.7/mimetools.py", line 6, in <module> 
    import tempfile 
File "/user/anaconda/lib/python2.7/tempfile.py", line 32, in <module> 
    import io as _io 
File "/user/anaconda/lib/python2.7/io.py", line 51, in <module> 
    import _io 

导入错误:dlopen的(/user/anaconda/lib/python2.7/lib-dynload /_io.so,2):找不到符号:__PyErr_ReplaceException 引用自:/user/anaconda/lib/python2.7/lib-dynload/_io.so 预期:动态查找

+0

http://stackoverflow.com/questions/17391289/tried-to-use-relative-imports-and-broke-my-import-paths可能是一个重复的问题 – TehTris

+0

该问题的答案没有解决我的问题。所以我尝试从我的烧瓶项目导入urllib2并打印文件路径。理想情况下,它应该给我的文件路径..但​​我再次得到导入错误 – bpt

+0

所以当你'从urllib2导入parse_http_list作为_parse_list_header'时发生了什么? – TehTris

回答

1

我有一个类似的问题,我按照solution的建议在from flask import Flask之前加上from urllib2 import parse_http_list as _parse_list_header,然后我得到这个错误信息:

"/Users/anaconda/lib/python2.7/io.py", line 51, in import _io 
ImportError: dlopen(/Users/anaconda/lib/python2.7/lib-dynload/_io.so, 2): 
Symbol not found: __PyCodecInfo_GetIncrementalDecoder 
Referenced from: /Users/anaconda/lib/python2.7/lib-dynload/_io.so 
Expected in: dynamic lookup 

然后我用以下解决solution

  1. 须藤查找/ -name _io.so
  2. 我换成/Users/anaconda/lib/python2.7/lib-dynload/_io 。所以用/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so

这对我的作品!