【问题标题】:'Unable to import' errors for anaconda environment in VS CodeVS Code 中 anaconda 环境的“无法导入”错误
【发布时间】:2019-05-09 22:25:41
【问题描述】:

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

source activate fenicsproject

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

但在编辑器中我收到很多这样的错误

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

我怎样才能摆脱编辑器中的那些错误,以便真正的错误能够脱颖而出。 更好的是,让自动完成和建议适用于 fenicsmshr 等包。

【问题讨论】:

标签: python visual-studio-code anaconda conda pylint


【解决方案1】:

根据the Python in Visual Studio Code docs,这可能是由于Visual Studio Code 指向了错误的Python 版本。

1。无法导入(pylint)

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

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

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

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

【讨论】:

  • 那行得通。我尝试了两种解决方案,它们都解决了最初的问题(在环境中安装pylint后,即conda install pylint)。对于解决方案 1:我激活了环境,使用 which python 获取路径并将其添加到工作区设置中。
  • 但是,它并没有消除所有警告/错误,更准确地说,我得到了不同的警告/错误:警告:[pylint] Unused import ... from wildcart import [W0614] 我可以通过添加 # pylint: disable=unused-import stackoverflow.com/questions/11957106/… 摆脱这个(但是仅适用于解决方案 2 !?!) 和错误:[pylint] Instance of ... has no ... member [E1101] 即使方法/属性存在
  • 这是您的代码的实际问题。 :-) 不要使用通配符导入;他们太可怕了。
  • 好的 :) 会改变这一点。但是Instance of ... has no ... member 的错误出现在具有非通配符导入的包上,例如from matplotlib import cm
  • 我刚刚将generated-members=cm.* 添加到.pylintrc stackoverflow.com/questions/33961756/… 不确定这是否是好的解决方案,但现在我至少没有显示错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 2021-11-18
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
相关资源
最近更新 更多