使用Visual Studio Code将requests导入Python

9

前言:我已经尝试了这篇文章中的所有建议。但都没有解决我的问题。

我试图在一个Python文件中(使用Python 2.7.14版本)导入模块requests

在Visual Studio Code控制台中输出以下内容:

ImportError: No module named requests

经过查找,我发现我还没有安装requests模块。因此,我在终端输入以下命令进行安装:

sudo pip install requests,参考这个答案,该答案得到了很多赞。

我关闭了VS Code并重新启动它,在打开的Python文件中运行,结果还是出现同样的错误。接着,我按照帖子中的每一个解决方案来尝试,但都无济于事。

最近我安装了anaconda,我怀疑这是问题的根源。因此,我通过brew卸载了我能够找到的所有Python实例以及积累在硬盘上的其他零散安装,参考了这个答案

随后,我通过brew doctor, brew prune等命令重新安装了Python。

我还查看了Visual Studio Code中的代码设置,以确定我的问题是否出在那里。其中一个建议是在code-runner.executorMap设置中覆盖python的设置。因此,我在终端中输入which python来获取python的路径,并将返回的路径更新为VS Code用户设置中的路径。现在,我将以下内容用作流程图的code-runner.executorMap

"code-runner.executorMap": {
    "python" : "/usr/bin/python"
}

我已验证Python的工作状态,通过添加一些简单语句:

print("Printing works fine")
print(1+1)

当我在文件顶部加上import requests时,我得到了以下错误并且后面的代码都没有执行:

[Running] /usr/bin/python "/Users/me/Documents/developerNew/python/tempCodeRunnerFile.py" Traceback (most recent call last): File "/Users/me/Documents/developerNew/python/tempCodeRunnerFile.py", line 1, in import requests ImportError: No module named requests

我的文件名叫做其他名字,所以我认为问题出现在"tempCodeRunnnerFile.py"里。我试过删除codeRunner.executorMap 的override,但是好像也没用。
我想不出办法了,如果你有什么建议,欢迎提出。感谢阅读。

1
也许与你的问题无关,但你真的应该使用虚拟环境(venv)。除此之外,尝试执行 sudo /usr/bin/python -m pip install requests。pip 不一定指向你认为的解释器,另一个选项是明确地使用 pip2。你可能会发现这个链接有用:https://dev59.com/cmAf5IYBdhLWcg3wbCN3#24664480。 - Padraic Cunningham
1
你肯定在那里有多个安装,这将起作用 wget https://bootstrap.pypa.io/get-pip.py && sudo /usr/bin/python get-pip.py 但除非你有一个明显的要求,我还会使用 >=py3.6 并且一定要使用 venv。which -a python 也将提供信息,which -a python2which -a python3 也是如此。 - Padraic Cunningham
谢谢!这是我在 RN 上的视频 https://www.youtube.com/watch?v=9N0OHdRFcJA。请将其作为答案发布,我会接受的。 - Adrian
哦,我的错,我在想Visual Studio而不是Code,糟糕。 - mgracer
1
@Adrian,不用担心,我已经添加了一个答案。 - Padraic Cunningham
显示剩余3条评论
5个回答

9

看起来VSCode允许你像这样导入:

import pip._vendor.requests

或者

from pip._vendor import requests

不确定为什么会发生这种情况。但确实会发生!


2

主要问题是 pip 引用了除 /usr/bin/python 以外的某些解释器,快速解决方案是使用 get-pip.py 安装 pip

wget https://bootstrap.pypa.io/get-pip.py && sudo /usr/bin/python get-pip.py 

为了调试,which pip如您所评论的那样输出:
/usr/local/bin/pip

所以 pip 是存在的,它只是指向其他解释器,在我的 Linux 系统上如果我检查每个变体的 pip:

padraic@dell:~$ which pip
/usr/local/bin/pip
padraic@dell:~$ which pip2
/usr/local/bin/pip2
padraic@dell:~$ which pip3
/usr/local/bin/pip3

我们看到/usr/local/bin/pip指的是我的python3解释器。
迄今为止,更好的选择是使用venv,最好使用python3python3.6相比之前版本有许多巨大的改进,创建venv的方法如下:
python -m venv venv 

我有一段时间没有使用vscode了,但从记忆中我认为你可以使用workspaceRoot来设置路径,我一直将venv作为我的虚拟环境名称,因此类似"python.pythonPath": "${workspaceRoot}/venv/bin/python"的内容应该可以正常工作。

要为venv安装软件包,您只需要激活即可:

. venv/bin/activate
pip install ....

使用 venv 可以避免很多麻烦,并且大大降低出错的可能性,从长远来看更加可靠。

0

0
  1. 打开 PowerShell 并运行命令 - python
  2. 查看你所使用的解释器 - 在我的情况下是 Python 3.11.1
  3. 从视图> 命令面板中选择 Python 3.11.1。

0
只需删除当前在您的Windows机器上的Python版本,并从Microsoft商店下载它。 尝试了所有方法,这是唯一一个真正起作用的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接