使用 Visual Studio Code 将请求导入 Python

Adr*_*ian 7 python python-requests visual-studio-code

前言:我已经尝试了这篇文章中的每一个建议。他们都没有工作。

我正在尝试将该模块requests导入 Python 文件(使用 Python 2.7.14)。

Visual Studio Code 在控制台中输出了这个:

导入错误:没有名为请求的模块

挖掘后,我发现我没有requests安装,所以我用来自终端的以下命令修复了它:

sudo pip install requests,基于这个答案,有无数的赞成票。

我关闭了 VS Code 并重新启动它,打开我的 Python 文件,运行它,我得到了同样的错误。我开始尝试每一种解决方案,希望一个能奏效。没有一个。

我最近安装了anaconda,我怀疑这是我的问题的根源,所以我卸载了我可以通过的每个 Python 实例,brew以及基于此答案在我的硬盘上随时间累积的其他安装的一部分的杂散安装。

然后我运行后重新安装蟒蛇从无到有brew doctor,brew prune等等。

我还深入研究了 Visual Studio Code 中的代码设置,看看这是否是我的问题所在。建议之一是覆盖设置python中的code-runner.executorMap设置,因此我which python在终端中键入以获取路径python并将 VS Code 的用户设置更新为which python返回的路径。现在,我使用它作为我的code-runner.executorMapfor python:

"code-runner.executorMap": {
    "python" : "/usr/bin/python"
}
Run Code Online (Sandbox Code Playgroud)

我已经通过在以下内容中加入几个简单的语句来验证 Python 是否正常工作:

print("Printing works fine")
print(1+1)
Run Code Online (Sandbox Code Playgroud)

我放在import requests文件顶部的那一刻,我收到了这个错误,它下面的任何内容都没有执行:

[运行] /usr/bin/python "/Users/me/Documents/developerNew/python/tempCodeRunnerFile.py" 回溯(最近一次调用):文件“/Users/me/Documents/developerNew/python/tempCodeRunnerFile.py” ,第 1 行,在导入请求中 ImportError: No module named requests

我的文件命名为其他名称,所以我认为我的问题存在于“tempCodeRunnnerFile.py”中。我尝试删除 的覆盖codeRunner.executorMap,但这似乎也不起作用。

我没有想法了。如果你有的话,我欢迎你的建议。感谢您的阅读。

小智 10

VSCode 似乎让你这样导入,

import pip._vendor.requests
Run Code Online (Sandbox Code Playgroud)

或者

from pip._vendor import requests
Run Code Online (Sandbox Code Playgroud)

不知道为什么会发生这种情况。但这种事却发生了!


Pad*_*ham 2

主要问题是pip指除 之外的一些解释器/usr/bin/python,快速解决方案是使用以下命令安装 pipget-pip.py:

wget https://bootstrap.pypa.io/get-pip.py && sudo /usr/bin/python get-pip.py 
Run Code Online (Sandbox Code Playgroud)

要调试,which pip正如您评论的输出:

/usr/local/bin/pip
Run Code Online (Sandbox Code Playgroud)

那么 pip,如果我检查 pip 的每个变体,它只是指向我的 linux 机器上的其他解释器:

padraic@dell:~$ which pip
/usr/local/bin/pip
padraic@dell:~$ which pip2
/usr/local/bin/pip2
padraic@dell:~$ which pip3
/usr/local/bin/pip3
Run Code Online (Sandbox Code Playgroud)

我们看到/usr/local/bin/pip指的是我的python3翻译。

到目前为止,更好的选择是使用 avenv并且最好使用python3,python3.6它比所有以前的版本都有大量的巨大改进,可以创建一个venv:

python -m venv venv 
Run Code Online (Sandbox Code Playgroud)

自从我使用 vscode 以来已经有一段时间了,但从记忆中我认为你可以使用workspaceRoot来设置路径,我venv一直使用作为我的 virtualenv 名称,所以类似的东西"python.pythonPath": "${workspaceRoot}/venv/bin/python"应该可以正常工作。

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

. venv/bin/activate
pip install ....
Run Code Online (Sandbox Code Playgroud)

从长远来看,使用venv将为您省去很多麻烦,并大大减少搞砸操作系统的机会。