导入请求模块不起作用

时间:2014-09-10 04:12:02

标签: python python-requests

我的系统上安装了请求模块。

pip install requests

现在我正在尝试在rpel中导入请求

import requests

失败并出现以下错误

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

4 个答案:

答案 0 :(得分:13)

最常见的原因是你有两个版本的Python 2.x,而pip中首先出现的PATH与{{1}不一致在python。{/ p>中排在第一位

有两种方法可以实现。

首先,您PATH之前的/usr/local/bin之前可能有/usr/bin,但您的PATH版本的Python没有/usr/local 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/pip一起使用的任何早期/usr/local/bin/python。无论如何,结果基本相同:pip现在意味着/usr/local/bin/pip,但它仍然适用于您的/usr Python,而不是/usr/local Python,并安装到{ {1}},/usr/lib/python2.7/site-packages无法看到。

如果你的两个版本是2.7和3.4,那就没问题了;根据{{​​3}},所有内容的3.x版本都必须使用/usr/local/bin/pythonpython3运行,依此类推,或者必须使用{{1}运行2.x版本}和pip3等等。

如果您的两个版本是例如2.6和2.7,则会出现问题,但您可以轻松解决此问题,因为您应始终python2pip2与{{1} }和pip2.6。您可以将自己与python2.6pip2.7混淆,但您不必这样做。

如果你的两个版本都是2.7,那么就没有办法消除歧义(除了一直使用完整的绝对路径,没有人想做)。

那么,为什么有人会在不知道他们正在做什么的情况下安装两份Python 2?


最常见的原因是他们使用Python 2.7附带的Mac,但他们阅读了一篇博文,告诉他们安装另一个Python并没有解释如何知道他们&# 39;重新做Apple预安装的Python位于/ usr / bin中,但会将脚本和二进制文件安装到python2.7。最流行的替代Python版本是python.org安装程序和Homebrew,默认情况下都安装到python。事实上,Mac用户往往不如Linux或FreeBSD用户那么精通Unix,但即使没有这个,这也是结束成千上万拥有pip的人的完美方式。和一个不匹配的/usr/local/bin,不知道为什么。

以前几乎所有Mac Python用户都有很好的理由来安装第二个Python。在OS X 10.6之前,Apple预装的Python版本往往过时,有时会被破坏。如果Apple只给你2.4,那么安装2.6是有意义的。这样做没有问题,因为/usr/local/binpip很容易消除歧义。但是苹果公​​司多年来一直在安装2.7。有时很好的理由为什么你需要一个不同的(你需要2.7.7中的错误修复,但Apple给你2.7.5,你需要32位版本,你需要一个额外的电池版本,如Enthought,你需要从中构建python个捆绑包,...),但这些原因不再适用于大多数人。

事实上,StackOverflow上的很多人似乎都拥有三个版本的Python 2.7。我不确定为什么这么常见,但他们会使用Homebrew安装Python 2.7,然后使用Python.org或Enthought的安装程序,现在他们已经有三个Python 2.7版本了所有人都争夺/ usr / local / bin的所有权。

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

  • 如果您可以使用Python 3.x,请安装它并使用python2.4python2.6(以及py2app等),路径不再是问题
  • 如果您不需要第二个Python 2.7,请摆脱非Apple的那个,只使用Apple。
  • 否则,不要使用Apple的Python,不要为它安装,不要触摸它;对于Apple自己的工具,请不要管它。如果你使用Homebrew,它的Python应该在PATH上更高(确保你pip3之前得到python3),它应该让你ipython3没有/usr/local/bin虽然苹果公司赢了,但很难不小心搞砸并安装到错误的产品上。

我还看到至少有一个同时拥有/usr/binpip install foo的Windows用户,sudoC:\Python27首先是D:\Python27,但是仅为PATH安装了C:。这似乎远不如Mac混淆(可能是因为Windows不附带Python,并且没有包管理器,所以你获得任何Python的唯一方法是运行安装程序)。这里的解决方案更简单:Windows不需要Python,因此你可以删除你想要的任何一个。


最后,在非Mac * nix系统上,特别是RHEL / CentOS Linux,您可能需要操作系统所需的Python 2.6或2.4以及您安装的Python 2.7,因为您需要它,或者2.7操作系统需要的操作系统和安装的2.5作为某些&#34;兼容性的依赖性&#34;包裹或类似物。无论哪种方式,您都可能很容易意外地为您实​​际使用的那个安装pip(特别是如果您使用D:引导程序而不是程序包管理器安装它。)

此处的解决方案非常简单:卸载pip,并使用pippip或其他任何内容来安装与您想要的Python 2.7一起使用的yum使用。并养成使用aptpython-pip的习惯 - 或者只是在个人资料中添加别名,以便python2.7pip2.7或您喜欢的任何内容运行python

答案 1 :(得分:0)

您使用Linux并安装了python2和python3吗?

如果是,请按以下方式安装:

pip install requests

将模块安装到python2

因此,如果在python3中运行import,可能会导致问题。

尝试致电:

pip3 install requests

在python3环境中安装模块。

答案 2 :(得分:0)

对于有类似问题的开发者:直接从其网站上的pack文件中安装python3版本。

请勿在{{1​​}}上删除或编辑任何内容!

  1. usr/local/bin
  2. rm -rf /Library/Frameworks/Python.framework/Versions/2.7

  3. 直接从官方网站上的软件包中安装python3。

  4. 重新打开rm -rf "/Applications/Python 2.7",(如果不使用它,则必须)以“未找到”状态重新安装模块,运行命令: VSCode 和其他“未找到”模块通过命令pip3 install requests

pip3 install xxxxxx添加到您的"python.pythonPath": "/usr/local/bin/python3"文件中。

答案 3 :(得分:0)

点安装要求 -bash:pip:找不到命令

没有模块名称请求

如何纠正错误

第一: 下载以下内容并使用python http://get-pip.py

安装

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

[转到链接并下载我提供的python脚本,然后运行它或右键单击并另存为]

然后在运行脚本“ python space(将脚本拖放到终端中)”之后,如果出现以下错误,请运行“ pip安装请求”; -bash:pip:找不到命令

请参阅警告中提到的路径。

然后按照相关步骤进行操作

看到黄色的路径吗?是的

/用户/ macbookair /图书馆/ ...等

在终端中键入cd,然后拖放bin文件夹

1.cd /Users/macbookair/Library/Python/2.7/bin {cd / Users / name / path / Python / version / bin

  1. ./ pip安装请求

这些步骤之后

现在再次运行您的python脚本,它应该可以工作

如果对您有帮助,请投票给我。