关于mac下requests的问题,请指教

import requests
html = requests.get('https://movie.douban.com/subject/26284595/?from=showing')
print html.text

同一段代码,在iterm下的ipython和python中都是可以运行的,但是去到pychram或者atom下就显示错误
错误如下

Traceback (most recent call last):
  File "/Users/xxx/Desktop/py/requests_text.py", line 1, in <module>
    import requests
  File "/usr/local/lib/python2.7/site-packages/requests/__init__.py", line 60, in <module>
    from .packages.urllib3.exceptions import DependencyWarning
  File "/usr/local/lib/python2.7/site-packages/requests/packages/__init__.py", line 29, in <module>
    import urllib3
  File "/Library/Python/2.7/site-packages/urllib3/__init__.py", line 8, in <module>
    from .connectionpool import (
  File "/Library/Python/2.7/site-packages/urllib3/connectionpool.py", line 7, in <module>
    from socket import error as SocketError, timeout as SocketTimeout
ImportError: cannot import name error

同时在直接安装requests情况下,在IDE下会报import urllib3的错误,以上错误已经是重新pip install urllib3情况下报错的

目前已经试过切换python

  • virtualenv虚拟环境下安装request

  • brew install python重新安装新的python

同时也已经清除过相关的.pyc文件,依旧是上述的name错误,请指教?

阅读 8.7k
3 个回答

是关于命名出了问题
总结一下自己遇到的坑,应该都是新手坑~

  • import requests 出问题的,检查一下是否将文件名设置成了requests.py

  • ImportError: cannot import name error出问题的,检查同目录下是否有其他文件与import的包同名,删除文件后,再次检查是否生成了*.pyc,删除干净应该就可以运行了

requests本身自带urllib3这个库的副本,在这个库的子目录下

解决方案就是要么升级库,或者重新安装现有的版本
可以强制安装:
pip install --force-reinstall requests==2.1.0
或者升级:
pip install --upgrade requests

新手上路,请多包涵

首先ImportError产生的原因无非就是未安装升级,要不就是和本地报名冲突了,导致引用错误。
来说一下我的问题产生的原因,我在使用requests的时候,其中import urllib3,再其中from socket import error......
而我本地自己又创建了一个socket.py,所有根据就近原则,会从该文件中导入,此时找不到相关内容,便ImportError~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题