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
其次,我使用以下命令安装了所需的软件包homebrew:
$ brew list
cmake           libffi          p11-kit
dcraw           libheif         pandoc
dlib            libidn2         pcre
...
jasper          numpy           webp
...
以及其他使用pipand的包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。
接下来,我使用以下命令将/usr/local/lib/python3.7/site-packages每个homebrew安装添加python3到 Visual Studio Code 设置文件中:
"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 窗口的左下角给出。
所有这些之后,单击“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]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",
        ...
    }
就在那里:python -u,与运行脚本所用的相同。
如果您想继续使用 Code Runner,只需将其更改为python您想要使用的解释器即可。在你的情况下,它应该是/usr/local/bin/python3:
    "code-runner.executorMap": {
        ...
        "python": "/usr/local/bin/python3",
        ...
    }
现在应该可以工作了:
它与 shebang 一起使用的原因#! /usr/local/bin/python3是因为 Code Runner 有一个设置,它尊重文件的 shebang ( code-runner.respectShebang),默认情况下为 true。
如果您不需要设置 Code Runner 的这个额外步骤,您可以简单地禁用(或卸载它)。您已经执行的所有步骤(设置、选择解释器并单击“播放”按钮)都可以与 Microsoft 的Python 扩展python.pythonPath配合良好。请参阅有关运行 Python 文件、选择环境和调试的官方文档。
| 归档时间: | 
 | 
| 查看次数: | 5737 次 | 
| 最近记录: |