导入requests模块不起作用

7 投票
4 回答
59245 浏览
提问于 2025-04-20 19:22

我在我的系统上安装了requests模块。

pip install requests

现在我想在rpel中导入requests。

import requests

但是出现了以下错误。

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named requests

4 个回答

-1

你是不是在用 Linux,而且同时安装了 python2 和 python3 呢?

如果是这样的话,你用下面的命令:

pip install requests

会把模块安装到 python2 里。

所以如果你在 python3 里运行 import,可能会出现问题。

试着用下面的命令:

pip3 install requests

来在 python3 环境中安装这个模块。

0

当你在终端输入命令 pip install request 时,可能会出现这样的错误提示:
-bash: pip: command not found

或者

没有名为 requests 的模块

那么该如何解决这些错误呢?

首先,你需要下载以下文件,并用 Python 安装:http://get-pip.py

https://bootstrap.pypa.io/get-pip.py

去这个链接下载我提供的 Python 脚本,然后运行它,或者右键选择“另存为”。

接下来,在终端中运行这个脚本,命令是“python 空格(把脚本拖到终端里)”。然后再运行 pip install requests,如果你看到下面的错误:
-bash: pip: command not found

请查看警告中提到的路径。

然后按照以下步骤操作:

你看到黄色的路径了吗?没错,就是这个:
/Users/macbookair/Library/... 等等

在终端中输入 cd,然后把 bin 文件夹拖到终端里。

1. 输入 cd /Users/macbookair/Library/Python/2.7/bin(格式是 cd /Users/你的名字/路径/Python/版本/bin

  1. 接着输入 ./pip install requests

完成这些步骤后,

现在再运行你的 Python 脚本,应该就能正常工作了。

如果这对你有帮助,请给我点赞哦。

0

对于遇到类似问题的开发者:直接从他们网站上的包文件安装python3版本。

千万不要删除或编辑 usr/local/bin 里的任何东西!

  1. rm -rf /Library/Frameworks/Python.framework/Versions/2.7 这条命令是用来删除旧的Python 2.7版本。
  2. rm -rf "/Applications/Python 2.7" 这条命令是用来删除安装在应用程序里的Python 2.7。

  3. 从官方网站直接安装python3。

  4. 重新打开 VSCode(如果你不使用它,那你应该试试),然后重新安装那些显示为“未找到”的模块,运行命令: pip3 install requests 以及其他“未找到”的模块,使用命令 pip3 install xxxxxx

在你的 settings.json 文件中添加 "python.pythonPath": "/usr/local/bin/python3"

24

最常见的原因是你电脑上有两个版本的 Python 2.x,而你在 PATH 中排在前面的 pip 和排在前面的 python 不是一对儿。

这种情况可能有两种原因。

首先,你的 PATH 中可能是 /usr/local/bin/usr/bin 前面,但你在 /usr/local 里的 Python 没有 pip。所以,当你运行 pip install requests 时,实际上调用的是 /usr/bin/pip,它会安装到 /usr/lib/python2.7/site-packages。但是当你运行 python 时,调用的是 /usr/local/bin/python,它会去 /usr/local/lib/python2.7/site-packages 找东西。

第二,即使你的两个 Python 2.x 在不同的位置,它们可能会想把 pip(以及其他脚本和可执行文件)安装到同一个地方。通常情况下,/usr/bin 是系统或包管理器自带的东西,所以如果你用 /usr/bin/python ez_setup.py/usr/bin/easy_install pip 等常见方式安装 pip,它可能会被安装到 /usr/local/bin。这样就会覆盖掉之前和 /usr/local/bin/python 一起的 /usr/local/bin/pip。无论如何,结果基本上是一样的:现在的 pip/usr/local/bin/pip,但它仍然和你的 /usr 版本的 Python 绑定,而不是 /usr/local 的 Python,安装到 /usr/lib/python2.7/site-packages,这是 /usr/local/bin/python 看不到的。

如果你的两个版本是,比如说 2.7 和 3.4,那就没问题;根据 PEP 394,3.x 的版本需要用 python3pip3 来运行,2.x 的版本则需要用 python2pip2 来运行。

如果你的两个版本是 2.6 和 2.7,那就有问题了,但你可以很容易地解决,因为你应该总是有 pip2.6python2.6,以及 pip2.7python2.7。你可以用 pythonpip 来搞混自己,但其实没必要。

不过,如果你的两个版本都是 2.7,那就没办法区分了(除非你总是使用完整的绝对路径,这没人愿意这么做)。

那么,为什么会有人在不明白的情况下安装两个 Python 2 的副本呢?


最常见的原因是他们在 Mac 上,Mac 自带 Python 2.7,但他们看了一篇博客,告诉他们要安装另一个 Python,却没有解释怎么知道自己在做什么。苹果自带的 Python 在 /usr/bin,但它会把脚本和二进制文件安装到 /usr/local/bin。最流行的替代 Python 版本是 python.org 的安装包和 Homebrew,它们默认都会安装到 /usr/local/bin。Mac 用户通常对 Unix 的了解不如 Linux 或 FreeBSD 用户,这可能也没什么帮助,但即使没有这些,这也是导致成千上万的人拥有不匹配的 pippython 的完美方式,结果却不知道为什么。

过去,几乎所有 Mac Python 用户安装第二个 Python 都有很好的理由。在 OS X 10.6 之前,苹果自带的 Python 版本往往过时且有时会坏。如果苹果只给你 2.4,那安装 2.6 是有道理的。而且这样做没有问题,因为 python2.4python2.6 很容易区分。但苹果已经好几年在安装可用的 2.7 了。有时你需要不同的版本(比如你需要 2.7.7 的 bug 修复,但苹果给你的是 2.7.5,你需要 32 位版本,或者需要像 Enthought 这样的额外版本,或者需要用它来构建 py2app 包等等),但这些理由对大多数人来说已经不再适用了。

事实上,许多 StackOverflow 上的人似乎有 三个 版本的 Python 2.7。我不太确定为什么这么普遍,但他们会用 Homebrew 安装 Python 2.7,然后又用 python.org 或 Enthought 的安装包,这样他们就有了三个 Python 2.7 版本,都在争夺 /usr/local/bin 的所有权。

那么,怎么解决这个问题呢?

  • 如果你可以使用 Python 3.x,安装它并只使用 pip3python3(还有 ipython3 等等),这样路径就不是问题了。
  • 如果你不需要第二个 Python 2.7,删除非苹果的那个,只用苹果的。
  • 否则,永远不要使用苹果的 Python,不要为它安装东西,不要碰它;就让它留给苹果自己的工具。如果你使用 Homebrew,它的 Python 应该在 PATH 中排在更前面(确保 /usr/local/bin/usr/bin 前面),这样你就可以用 pip install foo 而不需要 sudo,而苹果的则不行,这样就不容易意外搞错安装到错误的地方。

我还见过至少一个 Windows 用户同时有 C:\Python27D:\Python27,这两个都在 PATH 中,C: 的在前面,但 pip 只安装在 D:。这似乎比 Mac 的混乱少得多(可能是因为 Windows 不自带 Python,也没有包管理器,所以你只能通过运行安装程序来获取 Python)。而解决方案在这里更简单:Windows 不需要 Python,所以你可以删除你想要的那个。


最后,在非 Mac 的 *nix 系统上,特别是 RHEL/CentOS Linux,你可能会有一个操作系统需要的 Python 2.6 或 2.4,以及一个你自己安装的 Python 2.7,或者一个操作系统需要的 2.7 和一个作为某个“兼容性”包的依赖项安装的 2.5,或者类似的情况。无论如何,你很容易意外地为你实际上不使用的那个安装 pip(尤其是如果你用 pip 启动器而不是包管理器来安装它)。

这里的解决方案很简单:卸载那个 pip,然后用 yumapt 或其他工具安装与你想用的 Python 2.7 相关的 python-pip。并养成使用 python2.7pip2.7 的习惯——或者直接在你的配置文件中添加别名,这样 pythonpy 或你喜欢的其他命令就可以运行 python2.7

撰写回答