VS Code 中 anaconda 环境的“无法导入”错误

jos*_*t21 4 python pylint anaconda conda visual-studio-code

我正在尝试使用FEniCS用 Python 求解偏微分方程。我安装了它anacondaconda-forge使用它,我激活了fenicsproject环境

source activate fenicsproject
Run Code Online (Sandbox Code Playgroud)

我在jupyter(有效)中运行我的脚本,但通常使用 VS Code 来编写更复杂的代码更方便。当我在(内置)终端中运行用 VS Code 编写的脚本时,只要我fenicsproject启用了环境,它们就会运行而不会出错。

但是在编辑器中我得到了很多这样的错误

[pylint] Unable to import '...' [E0401]'
[pylint] Undefined variable '...' [E0602]

我怎样才能摆脱编辑器中的那些错误,让真正的错误脱颖而出。什么会更好,使其成为自动完成和建议工作,如包fenicsmshr等等。

wiz*_*zz4 5

根据Visual Studio Code 文档中的 Python,这可能是由于 Visual Studio Code 指向错误的 Python 版本。

1.无法导入(pylint)

  • 场景:您安装了一个模块,但是 IDE 中的 linter 却在抱怨;无法导入模块,因此以下错误消息显示为 linter 错误:

    .. unable to import 'xxx' ..
    
    Run Code Online (Sandbox Code Playgroud)
  • 原因:Python 扩展很可能使用了错误版本的 Pylint。
解决方案 1:(配置工作区设置以指向完全限定的 python 可执行文件):
  1. 打开工作区设置 (settings.json)
  2. 确定 python 可执行文件的完全限定路径(这甚至可以是虚拟环境)
  3. 确保为上述python环境安装了Pylint
  4. 将设置“pythonPath”配置为指向(先前标识的)完全限定的 python 可执行文件。

    "python.pythonPath": "/users/xxx/bin/python" ```
    
    Run Code Online (Sandbox Code Playgroud)
解决方案 2:(从激活的虚拟环境中打开 VS Code):
  1. 打开终端窗口
  2. 激活相关的python虚拟环境
  3. 确保 Pylint 安装在此虚拟环境中

    pip install pylint
    
    Run Code Online (Sandbox Code Playgroud)
  4. 关闭所有 VS Code 实例
  5. 从此终端窗口中启动 VS Code
    (这将确保 VS Code 进程将继承所有 Virtual Env 环境设置)