【问题标题】:Using Homebrew python3 with both homebrew packages and pip/pip3 packages in Visual Studio Code for Mac OS在 Mac OS 的 Visual Studio Code 中将 Homebrew python3 与 homebrew 包和 pip/pip3 包一起使用
【发布时间】:2020-07-20 10:37:47
【问题描述】:

我目前正在尝试在 Mac OSX 10.13.6 上设置 Visual Studio Code,以便在 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
...

以及其他使用pippip3的包:

$ 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 Code 并在“首选项”->“设置”中将 "Python:Python Path" 设置为 homebrew python3 安装,如上所述 /usr/local/bin/python3

看这个截图:

接下来,我将 homebrewpython3 安装添加到 Visual Studio 代码设置文件中,使用:

"python.autoComplete.extraPaths": [
    "/usr/local/lib/python3.7/site-packages" ]

最后,我在 Visual Studio Code 中选择了我的 python 解释器为/usr/local/bin/python3,并尝试按照下面的屏幕截图在.py 脚本中运行以下两行导入。请注意,解释器是 VS Code 窗口左下角给出的 Python 3.7.0 64-bit

在所有这些之后,在点击“播放”按钮运行 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

【问题讨论】:

  • 当你做/usr/local/bin/python3 -m pip list时,你看到numpy了吗? (是的,我知道您列出了您的 pip3 列表,但我只想确认 Homebrew 的 python3 是真正安装 numpy 的位置。)
  • 确认,绝对列出。
  • 从您的控制台日志中,您是否使用Code Runner?你安装了吗?
  • coderunner 部分是在没有保存的情况下运行的。更新了控制台日志以显示尝试运行保存的程序时发生的情况。相同的错误,但没有 coderunner。

标签: python-3.x visual-studio-code homebrew


【解决方案1】:

我能够重现您的问题..但只有当我使用 Code Runner 运行时。

那些带有[Running][Done] 的输出日志 Code Runner。
播放按钮也不是绿色,表示 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",
        ...
    }

它就是: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),默认情况下为 true。

如果您不想设置 Code Runner 这一额外步骤,您可以简单地禁用(或卸载它)。您已经完成的所有步骤(设置python.pythonPath,选择解释器,然后单击播放按钮)在微软的Python extension 上已经可以正常工作了。请参阅running Python filesselecting environmentsdebugging 上的官方文档。

【讨论】:

  • 这非常有用。谢谢吉诺。
猜你喜欢
  • 2013-08-26
  • 1970-01-01
  • 2019-07-19
  • 2017-11-05
  • 2016-06-11
  • 2012-02-29
  • 1970-01-01
  • 2021-12-14
相关资源
最近更新 更多