【问题标题】:ImportError: cannot import name requestsImportError:无法导入名称请求
【发布时间】:2018-04-30 13:36:28
【问题描述】:

每当我使用终端 (ubuntu) 运行 .py 代码时。

我收到此错误。

Traceback (most recent call last):                                                                                                                               
File "./twitterstream.py", line 15, in <module>                                                                                                                  
    from pip._vendor import requests                                                                                                                             
File "/usr/local/lib/python2.7/dist-packages/pip-10.0.1-py2.7.egg/pip/_vendor/requests/__init__.py", line 83, in <module>                                        
    from pip._internal.compat import WINDOWS                                                                                                                     
File "/usr/local/lib/python2.7/dist-packages/pip-10.0.1-py2.7.egg/pip/_internal/__init__.py", line 42, in <module>                                               
    from pip._internal import cmdoptions                                                                                                                         
File "/usr/local/lib/python2.7/dist-packages/pip-10.0.1-py2.7.egg/pip/_internal/cmdoptions.py", line 16, in <module>                                             
    from pip._internal.index import (                                                                                                                            
File "/usr/local/lib/python2.7/dist-packages/pip-10.0.1-py2.7.egg/pip/_internal/index.py", line 15, in <module>                                                  
    from pip._vendor import html5lib, requests, six
ImportError: cannot import name requests

所有错误都是导入错误。 (点)

我已经尝试重新安装 pip 和 python。

对此有何建议?

【问题讨论】:

  • 你安装了请求模块吗?
  • 你为什么直接使用pip
  • 您的 PYTHON_PATH 设置为什么?
  • 是的,我已经安装了所有需要的包,
  • $ pip install requests --user 并将from pip._vendor import requests 更改为import requests

标签: python pip


【解决方案1】:

有点晚了,但遇到了与此处描述的相同的错误。但是,建议的答案都没有解决我的问题。

在我的情况下,pip 是从操作系统的包管理器(Arch Linux 中的python-pip)以及请求(这是第一个的依赖项)安装的。 使用 pip (sudo pip uninstall requests) 删除请求后,我遇到了这个错误。

已通过使用我的发行版的包管理器 (pacman -Sy python-requests) 重新安装来修复。

【讨论】:

  • 哇。非常感谢。你拯救了我的一天。
【解决方案2】:

在你的终端上写

pip install requests

因为你没有安装但请求模块,你可以通过 pip 安装每个模块, pip install urlib2 , pip install readlines , pip install termcolor etc//

【讨论】:

    【解决方案3】:

    而不是这个:

    from pip._vendor import requests
    

    这样做:

    import requests
    

    您的代码当前正在尝试从另一个程序导入请求;该程序刚刚重组了所有代码,因此不再起作用也就不足为奇了。

    【讨论】:

    • 这行得通,但是……还有更多!看起来我需要在 18.04 而不是 16.04 (Ubuntu) 上运行失败的软件。现在测试....
    • 即使在 18.04 下,升级到 pip 19.x 也会失败。但至少它给了我版本 9.x 而不是 8.x。
    • @AlexisWilke 您可能想考虑提出一个新问题;听起来您遇到了不同的问题。
    • 我发现我必须通过 Docker 运行该软件,然后它才能工作。在我的情况下,设置仍然无效,但此处报告的问题不会发生。
    【解决方案4】:

    Pip 10.0.1 似乎已损坏,因此目前的解决方法是将 pip 固定在版本 9:

    pip install --upgrade pip==9.0.3
    

    否则,您需要获取最新版本的 pip,而不是发行版以及更新您的 PATH:

    export PATH="~/.local/bin:$PATH"
    

    【讨论】:

    • 对于 Python 2.7 pip install --upgrade pip==9.0.3 修复了这个问题
    【解决方案5】:

    在 Mac 上,我在任何 pip 命令因该回溯而失败的地方遇到了这个问题。

    这是由于我升级了大多数包,但我忽略了升级 virtualenv 相关包的情况。这些升级为我修复了它。

    pip install --upgrade virtualenvwrapper
    pip install --upgrade virtualenv
    pip install --upgrade virtualenv-clone
    

    这个修复了 pip 命令,以及 mkvirtualenv 命令等。

    我知道有几件事可能会导致这种情况,但这是其他用户可能会提供帮助的一种情况。通常,您可能希望在您的环境中查找严重不同步的包。

    【讨论】:

      【解决方案6】:

      我在 pip 10.0.1 上也遇到了这个错误。
      在 pip 9.0.3 上没有这个错误。

      【讨论】:

      • python -m pip install --upgrade pip
      【解决方案7】:

      我得到了同样的错误。问题是我删除了几个名为 requests 的文件夹,因为它与我的 python 代码中的 Requests 模块发生冲突。然后,当我将文件从垃圾箱放回时,pip3 list 命令运行良好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-04
        • 1970-01-01
        • 1970-01-01
        • 2015-06-11
        • 2018-09-17
        • 2016-03-31
        • 2014-10-10
        • 2014-09-20
        相关资源
        最近更新 更多