Beg*_*uly 7 homebrew python-3.x visual-studio-code
我目前正在尝试在 Mac OSX 10.13.6 上设置 Visual Studio Code 以在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
Run Code Online (Sandbox Code Playgroud)
其次,我使用以下命令安装了所需的软件包homebrew
:
$ brew list
cmake libffi p11-kit
dcraw libheif pandoc
dlib libidn2 pcre
...
jasper numpy webp
...
Run Code Online (Sandbox Code Playgroud)
以及其他使用pip
and的包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
Run Code Online (Sandbox Code Playgroud)
第三,我打开 Visual Studio Code 并在“首选项”->“设置”中设置"Python:Python Path"
为homebrew
python3
如上所述的安装/usr/local/bin/python3
。
接下来,我使用以下命令将/usr/local/lib/python3.7/site-packages
每个homebrew
安装添加python3
到 Visual Studio Code 设置文件中:
"python.autoComplete.extraPaths": [
"/usr/local/lib/python3.7/site-packages" ]
Run Code Online (Sandbox Code Playgroud)
最后,我在 Visual Studio Code 中选择了 python 解释器,并尝试按照下面的屏幕截图/usr/local/bin/python3
在脚本中运行以下两行导入。.py
请注意,解释器Python 3.7.0 64-bit
由 VS Code 窗口的左下角给出。
所有这些之后,单击“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
Run Code Online (Sandbox Code Playgroud)
配置 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
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为这与上面的输出不同,我没有使用 shebang,但根据 VSCode 的两个 python 解释器确实是/usr/local/bin/python3
我能够重现您的问题..但只有当我使用 Code Runner运行时。
这些类型的输出日志是[Running]
Code Runner。[Done]
播放按钮也不是绿色的,表示 Code Runner,因为默认为绿色。
现在,进行修复!
您会注意到它使用 执行您的脚本python -u
。这python
将是python
你的系统上的任何方式,对我来说这是默认的 Python 2.7。基本上,它不是带有 numpy 的 Homebrew Python3。
Code Runner 有一组默认的“执行器”,它告诉它哪个可执行文件用于哪种语言。在您的设置中搜索“code-runner Executor Map”:
打开您的settings.json,输入code-runner.executorMap
,然后让它使用默认值自动完成。然后您将看到一长串语言和执行器之间的映射。寻找以下内容python
:
"code-runner.executorMap": {
"javascript": "node",
...
"python": "python -u",
"perl": "perl",
...
}
Run Code Online (Sandbox Code Playgroud)
就在那里:python -u
,与运行脚本所用的相同。
如果您想继续使用 Code Runner,只需将其更改为python
您想要使用的解释器即可。在你的情况下,它应该是/usr/local/bin/python3
:
"code-runner.executorMap": {
...
"python": "/usr/local/bin/python3",
...
}
Run Code Online (Sandbox Code Playgroud)
现在应该可以工作了:
它与 shebang 一起使用的原因#! /usr/local/bin/python3
是因为 Code Runner 有一个设置,它尊重文件的 shebang ( code-runner.respectShebang
),默认情况下为 true。
如果您不需要设置 Code Runner 的这个额外步骤,您可以简单地禁用(或卸载它)。您已经执行的所有步骤(设置、选择解释器并单击“播放”按钮)都可以与 Microsoft 的Python 扩展python.pythonPath
配合良好。请参阅有关运行 Python 文件、选择环境和调试的官方文档。
归档时间: |
|
查看次数: |
5737 次 |
最近记录: |