前言:我试过这篇文章中的每一个建议。它们都不起作用。
我试图将模块requests导入到一个python文件中(使用python2.7.14)。
Visual Studio代码在控制台中输出了此代码:
ImportError: No module named requests
在挖掘过程中,我发现我没有安装requests,所以我用终端的以下命令修复了它:
根据这个答案,sudo pip install requests获得了数不清的赞成票。
我关闭了vs代码并重新启动了它,打开了我的python文件,运行了它,得到了相同的错误。我开始尝试每个解决方案,希望其中一个能奏效。没有。
我最近安装了anaconda,我怀疑这是我问题的根源,所以我卸载了通过brew可以找到的所有python实例,也卸载了一些杂散的安装,这些安装是基于这个答案,随着时间的推移在我的硬盘上积累的其他安装的一部分。
在运行brew doctor、brew prune等之后,我重新安装了python。
我还深入研究了Visual Studio代码中的代码设置,看看这是否是我的问题所在。其中一个建议是覆盖code-runner.executorMap设置中的python设置,所以我在终端中键入which python,以获取到python的路径,并将vs代码的用户设置更新为返回的which python路径。现在,我用这个作为我的code-runner.executorMap用于python:
1 2 3
| "code-runner.executorMap": {
"python" :"/usr/bin/python"
} |
我已经验证了python的工作原理,在下面的代码中加入了几个简单的语句:
1 2
| 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"中。我试着取消对EDOCX1的覆盖(15),但这似乎也不起作用。
我没主意了。如果你有,我欢迎你的建议。谢谢你的阅读。
- 也许和你的问题无关,但你真的应该使用Venv。除此之外,sudo /usr/bin/python -m pip install requests。pip不一定指向您认为它所指向的解释器,另一种选择是专门使用pip2。您还可以找到这个有用的stackoverflow.com/questions/24664435/…
- @谢谢你。我试过了,在控制台里找到了这个:/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 python2和which -a python3也将提供信息。
- 谢谢您!我注册youtube.com/watch?V=9n0ohdrfcja发帖作为答案,我接受。
- 你在运行什么操作系统?它看起来很混乱,像是在运行Mac或Linux,但你提到的是Visual Studio代码。
- @我正在运行VSC的本机MAC分发。code.VisualStudio.com/download I'm squared away Now.我有一个问题源于Python的多个版本。帕特里克向我指出了解决这个问题的正确方向。
- 哦,糟糕的是我认为Visual Studio不是代码错误
- @阿德里安,别担心,我补充了一个答案。
主要问题是pip是指/usr/bin/python以外的一些解释器,快速的解决方案是使用get-pip.py安装pip:
1
| wget https://bootstrap.pypa.io/get-pip.py && sudo /usr/bin/python get-pip.py |
要进行调试,请在注释输出时使用which pip:
因此,pip就在这里,它只是指向我的Linux框中的其他解释器,如果我检查pip的每个变体:
1 2 3 4 5 6
| 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,最好是python3,python3.6比所有以前的版本有许多巨大的改进,以创建venv:
我用了vscode已经有一段时间了,但是从内存来看,我认为你可以使用workspaceRoot来设置路径,我使用venv作为我的virtualenv名称,所以像"python.pythonPath":"${workspaceRoot}/venv/bin/python"这样的东西应该可以正常工作。
要为venv安装软件包,只需激活:
1 2
| . venv/bin/activate
pip install .... |
从长远来看,使用Venv可以减轻你的头痛,并大大降低操作系统出错的几率。