ImportError:没有模块命名为请求,但在路径中

时间:2018-07-23 22:05:51

标签: python

我正在尝试运行一个调用get()库的.py脚本。

request

由于某种原因,Python无法找到该库。但是,我检查路径是否包含anyoung@ANYOUNG-LTW7 /cygdrive/c/Users/anyoung/test/temp/Image-Crawler $ python main.py Traceback (most recent call last): File "main.py", line 3, in <module> import urllib.request ImportError: No module named request

/usr/lib/python2.7/site-packages

anyoung@ANYOUNG-LTW7 /cygdrive/c/Users/anyoung/test/temp/Image-Crawler $ python -c "import sys; print('\n'.join(sys.path))" /usr/lib/python2.7/site-packages/paramiko-1.16.0-py2.7.egg /usr/lib/python2.7/site-packages/ecdsa-0.13-py2.7.egg /usr/lib/python27.zip /usr/lib/python2.7 /usr/lib/python2.7/plat-cygwin /usr/lib/python2.7/lib-tk /usr/lib/python2.7/lib-old /usr/lib/python2.7/lib-dynload /home/anyoung/.local/lib/python2.7/site-packages /usr/lib/python2.7/site-packages /usr/lib/python2.7/site-packages/gtk-2.0 显示/usr/lib/python2.7/site-packages目录:

enter image description here

关于如何解决此错误的任何想法?

-基于第一个答案的更新-

我安装了Python3。但是仍然找不到该模块。

request中: C:\ Users \ anyoung> pip3安装请求

cmd.exe

我通过GUI将Collecting requests Downloading https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8 a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl (9 1kB) 100% |████████████████████████████████| 92kB 152kB/s Collecting chardet<3.1.0,>=3.0.2 (from requests) Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b648 7b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133 kB) 100% |████████████████████████████████| 143kB 216kB/s Collecting idna<2.8,>=2.5 (from requests) Downloading https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1 af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl (58kB) 100% |████████████████████████████████| 61kB 208kB/s Collecting urllib3<1.24,>=1.21.1 (from requests) Downloading https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5 e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl (133k B) 100% |████████████████████████████████| 143kB 261kB/s Collecting certifi>=2017.4.17 (from requests) Downloading https://files.pythonhosted.org/packages/7c/e6/92ad559b7192d846975f c916b65f667c7b8c3a32bea7372340bfe9a15fa5/certifi-2018.4.16-py2.py3-none-any.whl (150kB) 100% |████████████████████████████████| 153kB 407kB/s Installing collected packages: chardet, idna, urllib3, certifi, requests The script chardetect.exe is installed in 'c:\users\anyoung\appdata\local\prog rams\python\python37\Scripts' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warn ing, use --no-warn-script-location. Successfully installed certifi-2018.4.16 chardet-3.0.4 idna-2.7 requests-2.19.1 urllib3-1.23 You are using pip version 10.0.1, however version 18.0 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' comm and. 添加到PATH变量中:

enter image description here

再试一次并得到相同的错误消息:

c:\users\anyoung\appdata\local\programs\python\python37\Scripts

1 个答案:

答案 0 :(得分:0)

requestrequests是不同的东西。

urllib.request与两者都不相同。

仅仅是因为两件事名称相似,并不意味着它们是可以互换的。 requests是用于在较高级别执行HTTP的第三方程序包。 urllib.request是Python 3标准库中urllib包中的一个模块,用于在较低级别执行HTTP,FTP和其他协议。

这里的问题是您试图在Python 2.7中运行使用urllib.request的Python 3代码。您可以将对urllib.request的每个引用重命名为其等效的Python 2,urllib2,并且可能起作用。但是可能不会。而且代码很有可能具有其他特定于Python 3的导入或功能,因此它仍然无法运行或无法正常运行。

正确的做法是在Python 3中运行Python 3代码。

如果无法执行此操作,则需要考虑将代码移植回Python 2,或者使用sixmodernize移植到双版本代码。 3to2工具可以帮助您入门,但是并不能自动为您完成所有操作,而且人们在简单的Stack Overflow答案中也无法告诉您如何做。