VS代码:“导入错误:没有名为请求的模块”,尽管已安装

时间:2019-12-22 18:32:21

标签: python python-3.x visual-studio-code pip virtualenv

要在python 3中构建网络抓取程序,请执行以下操作

import urllib.request

我使用了venv,它被选中并显示在VS Code的左下方。 settings.json文件具有:

"python.pythonPath": "venv/bin/python"

集成终端也已关闭并重新打开多次。输入pip list显示request已安装该虚拟阀。

如果我运行该文件,不会出现任何问题,但是在输出中它总是说

Traceback (most recent call last):
File "/Users/filepath/filename.py", line 2, in 
<module>
import urllib.request
ImportError: No module named request

重要:上次打开此文件时,导入该模块一切正常。现在,在第二天保存并重新打开该项目之后,我一遍又一遍地收到此错误消息。

我真的希望有人能提供帮助!谢谢!

2 个答案:

答案 0 :(得分:0)

正在发生以下两种情况之一。一种是您的环境实际上是Python 2,而不是Python 3,因为urllib.request仅存在于后者中(您可以通过在状态栏中查看屏幕的左下角来进行检查)。另一种可能性是,您在自己的代码中创建了一个名为urllib的文件,这正遮盖了stdlib中的urllib包。您可以通过将代码更改为import urllib; print(urllib.__file__)来验证这一点。如果这样可以打印出其中一个文件的路径,请重命名该文件,这样就可以解决您的问题。

您无需从import urllib.request更改导入行;与from urllib import request基本相同,但可以使用不同的名称来获取相同的模块。

还要注意,urllib.request包含在Python 3本身中,因此不会出现在对pip list的调用中。我怀疑您在考虑requests,它是一个不同的软件包,可以通过import requests进行访问。

答案 1 :(得分:-1)

首先,欢迎您使用Stack Overflow! 这似乎与您如何从urllib导入请求有关。您能不能尝试将导入更改为此:

from urllib import request

希望有帮助!