在 Visual Studio Mac OS 代码中使用 Homebrew python3 和 pip/pip3 包
Using Homebrew python3 with both homebrew packages and pip/pip3 packages in Visual Studio Code for Mac OS
我目前正在尝试在 Mac OSX 10.13.6 上设置 Visual Studio 代码,以便在 python3
中进行编码。我想避免为不同的 python3
脚本使用多个虚拟环境,而是让它们全部 运行 使用:
(1) homebrew
安装 python3
(2) 访问已安装的 python 软件包:
homebrew
软件包列表
pip3
安装包列表
pip
已安装的软件包列表。
首先,我首先使用homebrew
安装了python3
:
$ 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 Studio 代码并在 "Preferences" -> "Settings" 中将 "Python:Python Path"
设置为 homebrew
python3
安装为上面提到 /usr/local/bin/python3
。
看这个截图:
接下来,我根据 homebrew
安装 python3
添加 /usr/local/lib/python3.7/site-packages
到 Visual Studio 代码设置文件,使用:
"python.autoComplete.extraPaths": [
"/usr/local/lib/python3.7/site-packages" ]
最后,我在 Visual Studio 代码中选择了我的 python 解释器 /usr/local/bin/python3
并尝试 运行 [=41= 中的以下 2 行导入] 脚本按照下面的屏幕截图。注意解释器是VS Code左下角给出的Python 3.7.0 64-bit
window.
所有这一切之后,在单击 "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 Code 的最简单方法是什么,这样我就可以 运行 python3
脚本访问我在系统中安装的所有包,而无需使用虚拟环境?谢谢!
注意:一种似乎可行的解决方法,我不确定为什么如果我在我的脚本顶部放置一个 shebang #! /usr/local/bin/python3
然后我的输出看起来像这样:
[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
我能够重现你的问题..但是只有当我使用 Code Runner 到 运行.
那些带有 [Running]
和 [Done]
的输出日志 是 Code Runner。
播放按钮也不是绿色的,说明Code Runner因为默认是绿色的。
现在,进行修复!
您会注意到它使用 python -u
执行了您的脚本。 python
就是 python
在你的系统上的意思,对我来说是默认的 Python 2.7。基本上,这不是你的 Homebrew Python3 with numpy.
Code Runner 有一组默认的 "executors",它告诉它针对哪种语言使用哪个可执行文件。在您的设置中搜索 "code-runner Executor Map":
打开你的 settings.json,输入 code-runner.executorMap
,然后让它使用默认值自动完成。然后你会看到一长串语言和执行者之间的映射。寻找 python
:
"code-runner.executorMap": {
"javascript": "node",
...
"python": "python -u",
"perl": "perl",
...
}
它就在那里:python -u
,与 运行 您的脚本使用的相同。
如果您想继续使用 Code Runner,只需将其更改为您想要使用的 python
解释器即可。在你的情况下,它应该是 /usr/local/bin/python3
:
"code-runner.executorMap": {
...
"python": "/usr/local/bin/python3",
...
}
它现在应该可以工作了:
它使用 #! /usr/local/bin/python3
shebang 的原因是因为 Code Runner 有一个设置,它尊重文件的 shebang (code-runner.respectShebang
),默认情况下为真。
如果您不想设置 Code Runner 的这个额外步骤,您可以简单地禁用(或卸载它)。您已经执行的所有步骤(设置 python.pythonPath
、选择解释器并单击播放按钮)在 Microsoft 的 Python extension. See the official docs on running Python files, selecting environments, and debugging.
中已经可以正常工作了
我目前正在尝试在 Mac OSX 10.13.6 上设置 Visual Studio 代码,以便在 python3
中进行编码。我想避免为不同的 python3
脚本使用多个虚拟环境,而是让它们全部 运行 使用:
(1) homebrew
安装 python3
(2) 访问已安装的 python 软件包:
homebrew
软件包列表pip3
安装包列表pip
已安装的软件包列表。
首先,我首先使用homebrew
安装了python3
:
$ 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 Studio 代码并在 "Preferences" -> "Settings" 中将 "Python:Python Path"
设置为 homebrew
python3
安装为上面提到 /usr/local/bin/python3
。
看这个截图:
接下来,我根据 homebrew
安装 python3
添加 /usr/local/lib/python3.7/site-packages
到 Visual Studio 代码设置文件,使用:
"python.autoComplete.extraPaths": [
"/usr/local/lib/python3.7/site-packages" ]
最后,我在 Visual Studio 代码中选择了我的 python 解释器 /usr/local/bin/python3
并尝试 运行 [=41= 中的以下 2 行导入] 脚本按照下面的屏幕截图。注意解释器是VS Code左下角给出的Python 3.7.0 64-bit
window.
所有这一切之后,在单击 "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 Code 的最简单方法是什么,这样我就可以 运行 python3
脚本访问我在系统中安装的所有包,而无需使用虚拟环境?谢谢!
注意:一种似乎可行的解决方法,我不确定为什么如果我在我的脚本顶部放置一个 shebang #! /usr/local/bin/python3
然后我的输出看起来像这样:
[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
我能够重现你的问题..但是只有当我使用 Code Runner 到 运行.
那些带有 [Running]
和 [Done]
的输出日志 是 Code Runner。
播放按钮也不是绿色的,说明Code Runner因为默认是绿色的。
现在,进行修复!
您会注意到它使用 python -u
执行了您的脚本。 python
就是 python
在你的系统上的意思,对我来说是默认的 Python 2.7。基本上,这不是你的 Homebrew Python3 with numpy.
Code Runner 有一组默认的 "executors",它告诉它针对哪种语言使用哪个可执行文件。在您的设置中搜索 "code-runner Executor Map":
打开你的 settings.json,输入 code-runner.executorMap
,然后让它使用默认值自动完成。然后你会看到一长串语言和执行者之间的映射。寻找 python
:
"code-runner.executorMap": {
"javascript": "node",
...
"python": "python -u",
"perl": "perl",
...
}
它就在那里:python -u
,与 运行 您的脚本使用的相同。
如果您想继续使用 Code Runner,只需将其更改为您想要使用的 python
解释器即可。在你的情况下,它应该是 /usr/local/bin/python3
:
"code-runner.executorMap": {
...
"python": "/usr/local/bin/python3",
...
}
它现在应该可以工作了:
它使用 #! /usr/local/bin/python3
shebang 的原因是因为 Code Runner 有一个设置,它尊重文件的 shebang (code-runner.respectShebang
),默认情况下为真。
如果您不想设置 Code Runner 的这个额外步骤,您可以简单地禁用(或卸载它)。您已经执行的所有步骤(设置 python.pythonPath
、选择解释器并单击播放按钮)在 Microsoft 的 Python extension. See the official docs on running Python files, selecting environments, and debugging.