'没有名为request的模块'即使我用pip安装了请求

时间:2017-05-20 20:09:12

标签: python python-2.7 python-requests

我试图测试请求模块是否已正确安装。但我收到以下错误:

raceback (most recent call last):
  File "/Users/macbookpro/Desktop/test.py", line 1, in <module>
    import requests
ImportError: No module named requests

尝试运行以下测试脚本时:

import requests
print 'test'

但我已经用pip安装了请求,pip list命令给出了以下结果:

MBPdeMacBook2:~ macbookpro$ pip list
arrow (0.7.0)
beautifulsoup4 (4.4.1)
classifier (1.6.5)
coursera-dl (0.6.1)
Django (1.8.6)
html5lib (1.0b8)
keyring (9.0)
lxml (3.6.0)
Pillow (3.4.2)
pip (8.0.2)
pyasn1 (0.1.9)
requests (2.14.2)
setuptools (19.4)
six (1.10.0)
urllib3 (1.16)
vboxapi (1.0)
virtualenv (13.1.2)
wheel (0.26.0)

为什么请求未被导入?

编辑:

MBPdeMacBook2:~ macbookpro$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
MBPdeMacBook2:~ macbookpro$ which pip
/usr/local/bin/pip
MBPdeMacBook2:~ macbookpro$ python --version
Python 2.7.11
MBPdeMacBook2:~ macbookpro$ pip --version
pip 8.0.2 from /usr/local/lib/python2.7/site-packages (python 2.7)

5 个答案:

答案 0 :(得分:2)

我不是百分百确定,但which pythonwhich pip的路径可能表示您安装了两个版本。 Python版本是OS X附带的旧版本,另一个版本。

我建议你从brew安装Python27(甚至更好的Python3)。

您可以安装brew with a single command,另一个用于安装Python27 / 3。完成后,在shell rc文件中设置PATH变量,你应该好好去。

我安装了Python27(通过brew),我的(工作环境)报告了以下路径:

which python: /usr/local/bin/python
which pip: /usr/local/bin/pip

python --version: 2.7.15
pip --version: pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python2.7)

答案 1 :(得分:2)

一般来说,你应养成在virtualenv工作的习惯。我发现文档here很有帮助。

如果您在虚拟环境中安装所有依赖项,那么(大多数)您将确保安装这些deps。在您正在运行作业的相同环境中。

对于您的情况,请转到命令行所在的目录并运行

pip install virtualenv
virtualenv my_project
source my_project/bin/activate

现在virtualenv处于活动状态,你可以

pip install requests

只有virtualenv中安装的内容才可用。这将使您的系统保持清洁。每个项目都应该有自己的virtualenv,这意味着只有每个项目所需的依赖项才可用。这样,您可以为一个项目安装一些依赖项的版本1,为另一个项目安装版本2。他们不会发生冲突。

安装完所有依赖项后,运行

pip freeze > requirements.txt

获取已保存项目的所有依赖项的列表。下次需要安装时,只需运行

即可
pip install -r requirements.txt

完成virtualenv的工作后,运行

deactivate

答案 2 :(得分:1)

我在Ubuntu 18.04 LTS上遇到了同样的问题,要进行检查,首先检查系统中是否安装了请求库。

在您工作的虚拟环境中的终端上运行这些命令

$ python

然后打开python命令行,然后运行

>>> import requests

在此之后,如果出现ImportError的提示,即“没有模块命名为请求”,则表示该依赖项尚未正确安装。如果没有这样的错误,则表示依赖项已成功安装。

答案 3 :(得分:0)

例如,如果pip实际上是pip3而python实际上是python2.7,则会发生这种情况。 在你的情况下,哪个pip和哪个python消除了这种可能性,但它刚好发生在我身上。

解决方案是做pip2而不是pip;如果情况被逆转,你可以使用pip3。

答案 4 :(得分:0)

只需进入您的虚拟环境并运行以下命令:

1)。 pip install --user pipenv 2)。 pipenv 安装请求

在执行上述命令后 cd 到虚拟环境中的应用程序文件夹并运行它。希望现在它会运行。

参考链接:https://python-guide-pt-br.readthedocs.io/pt_BR/latest/dev/virtualenvs.html#make-sure-you-ve-got-python-pip