我目前正尝试在MacOSX10.13.6上设置Visual代码,以便在python3中进行编码。我希望避免对不同的python3脚本使用多个虚拟环境,而是让它们都使用以下方式运行:
(1)相同的homebrew安装python3
(2)访问已安装的python包:
homebrew包列表pip3安装包列表pip已安装软件包列表。首先,我首先使用python3安装了homebrew。
$ brew info python
python: stable 3.7.7 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python/3.7.7 (4,062 files, 62.4MB)
...
Python has been installed as
/usr/local/bin/python3
...
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/usr/local/lib/python3.7/site-packages第二,我使用homebrew安装了所需的软件包。
$ brew list
cmake libffi p11-kit
dcraw libheif pandoc
dlib libidn2 pcre
...
jasper numpy webp
...以及使用pip和pip3的其他软件包
$ pip list
DEPRECATION:...
Package Version
-------------------------------------- --------
altgraph 0.10.2
...
numpy 1.8.0rc1
...
zope.interface 4.1.1
$
$ pip3 list
Package Version
------------------ -------
appnope 0.1.0
...
numpy 1.18.2
pandocfilters 1.4.2
parso 0.5.2
pexpect 4.7.0
pickleshare 0.7.5
pip 20.0.2
pomegranate 0.12.2
...
scipy 1.4.1 第三,我打开了Visual代码,并在"Preferences“-> "Settings”中将"Python:Python Path"设置为homebrew python3安装,如上面提到的/usr/local/bin/python3。
看这张截图:

接下来,我使用以下方法将/usr/local/lib/python3.7/site-packages添加到文件中:
"python.autoComplete.extraPaths": [
"/usr/local/lib/python3.7/site-packages" ]最后,我选择Visual中的python解释器作为/usr/local/bin/python3,并尝试按照下面的屏幕快照在.py脚本中运行以下2行导入。注意,解释器是由VS代码窗口左下角提供的Python 3.7.0 64-bit。

在所有这些之后,单击"Play“按钮在VS code的右上角运行代码后,得到了这个输出:
[Running] python -u "/Users/...bayes_net_nodes.py"
Traceback (most recent call last):
File "/Users/...bayes_net_nodes.py", line 1, in <module>
import numpy as np
ModuleNotFoundError: No module named 'numpy'
[Done] exited with code=1 in 0.037 seconds配置VS代码的最简单方法是什么,这样我就可以运行python3脚本,这些脚本可以访问我在系统中安装的所有包,而无需使用虚拟环境。谢谢!
注意:有一种解决方法似乎有效,我不知道为什么,如果我在脚本#! /usr/local/bin/python3和输出的顶部放置一个shebang,那么如下所示:
[Running] /usr/local/bin/python3 "/Users/...bayes_net_nodes.py"
[Done] exited with code=0 in 0.051 seconds这很奇怪,因为这与上面的输出不同,在上面我没有使用shebang,但是根据VSCode,这两个python解释器实际上都是/usr/local/bin/python3
发布于 2020-04-09 12:37:16
我能重现你的问题。但是,只有当我使用代码运行程序( Code )运行时,才会使用。

这种使用[Running]和[Done]的输出日志是代码运行程序。
播放按钮也不是绿色,表示代码运行程序,因为默认是绿色的。
现在,为了解决问题!
您会注意到它使用python -u执行您的脚本。python将是您系统上python的任何含义,对我来说,这是默认的Python2.7。基本上,这不是你的自制Python3与numpy。
代码运行程序有一组默认的“执行器”,它告诉它要为哪种语言使用哪种可执行文件。在您的设置中将其搜索为“代码运行程序执行映射”:

打开您的settings.json,输入code-runner.executorMap,然后让它在默认情况下自动完成。然后,您将看到一长串语言和执行器之间的映射。寻找用于python的
"code-runner.executorMap": {
"javascript": "node",
...
"python": "python -u",
"perl": "perl",
...
}它就是这样的:python -u,和运行脚本的那个一样。
如果您想继续使用代码运行程序,只需将其更改为您想要使用的任何python解释器。在您的例子中,应该是/usr/local/bin/python3
"code-runner.executorMap": {
...
"python": "/usr/local/bin/python3",
...
}它现在应该能发挥作用:

它使用#! /usr/local/bin/python3 shebang的原因是因为Code有一个设置,它尊重文件的shebang (code-runner.respectShebang),这在默认情况下是正确的。
如果您不希望这个额外的步骤设置代码运行程序,您可以简单地禁用(或卸载)。您已经完成的所有步骤(设置python.pythonPath、选择解释器和单击Play按钮)在微软的Python扩展上都会正常工作。请参阅运行Python文件、选择环境和调试上的官方文档。
https://stackoverflow.com/questions/61093541
复制相似问题