python-3.x - 在 Visual Studio Code for Mac OS 中使用 Homebrew python3 和 homebrew 包和 pip/pip3 包

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

我目前正在尝试在 Mac OSX 10.13.6 上设置 Visual Studio Code 以在 python3 中进行编码.我想避免为我的不同 python3 使用多个虚拟环境脚本,而是让它们全部使用:

(1) 同homebrew安装python3
(2)访问已安装的python包:

  • homebrew包裹 list
  • 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 Studio Code 并在“首选项”->“设置”中设置 "Python:Python Path"homebrew python3如上所述安装 /usr/local/bin/python3 .

    看这个截图:
    Python:Python Path

    接下来,我添加了 /usr/local/lib/python3.7/site-packageshomebrew安装 python3到 Visual Studio 代码设置文件,使用:
    "python.autoComplete.extraPaths": [
        "/usr/local/lib/python3.7/site-packages" ]
    

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

    VS Code Screenshot

    毕竟,在单击“播放”按钮以运行 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 运行。

    enter image description here

    那些带有 [Running] 的输出日志和 [Done]是代码运行器。
    播放按钮也不是绿色的,表示 Code Runner 因为默认是绿色的。

    现在,修复!

    您会注意到它使用 python -u 执行了您的脚本。 .那个python将是任何 python意味着在你的系统上,对我来说这是默认的 Python 2.7。基本上,它不是带有 numpy 的 Homebrew Python3。

    Code Runner 有一组默认的“执行程序”,它告诉它哪个可执行文件用于哪种语言。在您的设置中将其搜索为“code-runner Executor Map”:

    enter image description here

    打开你的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",
            ...
        }
    

    它现在应该可以工作:

    enter image description here

    它适用于 #! /usr/local/bin/python3 的原因shebang 是因为 Code Runner 有一个设置,它尊重文件的 shebang ( code-runner.respectShebang ),默认情况下为 true。

    如果您不想设置 Code Runner 的额外步骤,您可以简单地禁用(或卸载它)。您已经执行的所有步骤(设置 python.pythonPath ,选择解释器,然后单击“播放”按钮)在 Microsoft 的 Python extension 上都可以正常工作。 .请参阅 running Python files 上的官方文档, selecting environments , 和 debugging .

    关于python-3.x - 在 Visual Studio Code for Mac OS 中使用 Homebrew python3 和 homebrew 包和 pip/pip3 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61093541/

    相关文章:

    python-3.x - 如何POS_TAG法语句子?

    django - 允许 Django 管理员更改字段是否为必填

    python - 没有名为 'PIL' 的模块

    visual-studio-code - Visual Studio Code - 仅重复选择

    python - 如何从 VS Code 的输出中删除 [Running] python -u "c:\Users\####\Downloads\Tutorial\HelloWorld\app.py"等消息?

    ruby-on-rails - 在 OS X Mavericks 上安装 Homebrew 会出现 SSL 错误 9806

    homebrew - 如何更新 Homebrew SHA256?

    python - 在函数中调用 patsy 时的命名空间问题

    android - VSCode安卓模拟器重启: Error -32000

    pip - 无法在 mac high sierra 上卸载 awscli