使用 Visual Studio Code 将请求导入 Python

Posted

技术标签:

【中文标题】使用 Visual Studio Code 将请求导入 Python【英文标题】:Importing requests into Python using Visual Studio Code 【发布时间】:2018-07-24 08:25:58 【问题描述】:

前言:我已经尝试了this post 中的所有建议。它们都不起作用。

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

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

ImportError: 没有名为 requests 的模块

在挖掘时,我发现我没有安装 requests,所以我使用终端中的以下命令修复了这个问题:

sudo pip install requests,基于this answer,获得无数赞。

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

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

然后我在运行brew doctorbrew prune等之后从头开始重新安装了python。

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

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

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

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

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

[运行] /usr/bin/python "/Users/me/Documents/developerNew/python/tempCodeRunnerFile.py" 回溯(最近一次通话最后): 文件“/Users/me/Documents/developerNew/python/tempCodeRunnerFile.py”,第 1 行,在 导入请求 ImportError:没有名为 requests 的模块

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

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

【问题讨论】:

可能与您的问题无关,但您应该真正使用使用 venv。除了那次尝试,sudo /usr/bin/python -m pip install requests。 pip 不一定指向您认为的解释器,另一种选择是专门使用pip2。您可能还会发现这很有用***.com/questions/24664435/… @PadraicCunningham 谢谢。我试过了,我在控制台中得到了这个:/usr/bin/python: No module named pip。我在终端中输入了which pip,它会输出:/usr/local/bin/pip 你有多个安装在那里,这将工作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 谢谢!我 RN youtube.com/watch?v=9N0OHdRFcJA 发帖作为答案,我会接受。 @Adrian,别担心,我添加了答案。 【参考方案1】:

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

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

要调试,which pip 你评论输出:

/usr/local/bin/pip

所以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

我们看到/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's 将为您省去很多麻烦,并大大减少搞砸操作系统的机会。

【讨论】:

【参考方案2】:

VSCode 好像可以让你这样导入,

import pip._vendor.requests

from pip._vendor import requests

不知道为什么会这样。但这会发生!

【讨论】:

【参考方案3】:

您还有一个选择,您可以按照以下步骤操作:

1)下载包https://files.pythonhosted.org/packages/f5/4f/280162d4bd4d8aad241a21aecff7a6e46891b905a4341e7ab549ebaf7915/requests-2.23.0.tar.gz

2)解压

3)复制到visual studio项目文件夹中

4)将其包含在项目中

5)导入代码文件

【讨论】:

以上是关于使用 Visual Studio Code 将请求导入 Python的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio Code 中使用建议的方法参数

Visual Studio Code 调试 PHP

Visual Studio Code:无法将 ESLint 修复应用于文档

将 Visual Studio Code 连接到 Codeanywhere 容器

使用 Visual Studio Code 的 Mocha 断点

Visual Studio Code 的 launch.json 解析