【问题标题】:pip install requests fails because it's already installed but I also get "ImportError: no module requests"pip install requests 失败,因为它已经安装,但我也收到“ImportError:没有模块请求”
【发布时间】:2019-12-03 15:42:01
【问题描述】:

我正在设置我的 MacBook Pro,遇到了一些与 Python 版本和 pip 相关的问题。

我试着跑:

$ ./myscript.py
Traceback (most recent call last):
  File "./better_publishing.py", line 7, in <module>
    import requests
ImportError: No module named requests

但是当我尝试pip install:

$ pip install requests
Requirement already satisfied: requests in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (2.22.0)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from requests) (3.0.4)
Requirement already satisfied: certifi>=2017.4.17 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from requests) (2019.6.16)
Requirement already satisfied: idna<2.9,>=2.5 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from requests) (2.8)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from requests) (1.25.3)

pip 版本:

$ pip --version
pip 19.3.1 from /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pip (python 3.7)

Python 版本:

$ python --version
Python 3.7.5

希望得到一些帮助。谢谢!

【问题讨论】:

  • 您是否安装了多个版本的 Python?
  • 是的,我愿意。在我的.zshrc 我也有alias python=/usr/local/bin/python3
  • 你的机器里有pip3吗?
  • 如果是这样,请尝试 pip3 安装请求
  • 就我个人而言,我建议不要在 Mac 上将 python 别名化为 python3,尽管我不确定这样做有什么本质上的错误。我会使用pyenv 之类的东西来管理您的python 安装。我怀疑您所拥有的是您的pip/pip3 与可能正在使用的python3 版本无关。您是否尝试过 pip 安装其他一些包并导入它,以检查这是否真的是 requests 唯一的问题?

标签: python python-3.x macos pip


【解决方案1】:

如果我是你,我会尝试卸载模块并重新安装它。 以下是命令:

$ pip uninstall requests
$ pip install requests

【讨论】:

    【解决方案2】:

    您是否尝试过查看请求是否与 pip list 一起列出?

    如果是,那么您可以尝试pip uninstall requests。如果这也给您带来错误,那么您可以尝试在查找器中删除包。

    在此之后,我可以再次使用pip install &lt;some_package&gt;

    【讨论】:

      【解决方案3】:

      也许你必须在myscript.py的第一行添加这个

      #!/usr/bin/env python
      

      【讨论】: