【问题标题】:Pylint doesn't recognize my Python imports on VS Code, but the code runs without any errorPylint 无法识别我在 VS Code 上的 Python 导入,但代码运行时没有任何错误
【发布时间】:2020-06-03 14:14:34
【问题描述】:

我正在使用 Anaconda 3 在 Windows 7 64 位上工作。在我的环境 Nifti 上,我安装了 Tensorflow 2.1.0、Keras 2.3.1 和 Python 3.7.7。

在 Visual Studio Code 上,所有这些导入都存在问题:

from tensorflow.python.keras.models import Model
from tensorflow.keras.layers import Input, Dense, Conv2D, Conv2DTranspose, UpSampling2D, MaxPooling2D, Flatten, ZeroPadding2D
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.optimizers import Adam

我收到以下错误:

No name 'python' in module 'tensorflow'
Unable to import 'tensorflow.python.keras.models'
Unable to import 'tensorflow.keras.layers'
Unable to import 'tensorflow.keras.preprocessing.image'
Unable to import 'tensorflow.keras.optimizers'

Visual Studio Code 使用相同的 anaconda 环境:D:\Users\VansFannel\Programs\anaconda3\envs\nifti。我已经在 Visual Studio 中的“Python:选择解释器命令”选项上进行了检查。

如果我在激活 nifti 环境的 CMD shell 上执行此操作,python -c 'from tensorflow.python.keras.models import Model,我不会收到任何错误。

如果我使用 iPython

from tensorflow.python.keras.models import Model

我也没有收到任何错误。

我检查了python.pythonpath的设置,它指向:D:\Users\VansFannel\Programs\anaconda3\envs\nifti

在左下角我可以看到:

当我在 Visual Studio Code 上打开一个新终端时,我收到以下消息:

Microsoft Windows [Versión 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

D:\Sources\Repos\University\TFM\PruebasPython\Nifty>D:/Usuarios/VansFannel/Programs/anaconda3/Scripts/activate

(base) D:\Sources\Repos\University\TFM\PruebasPython\Nifty>conda activate nifti

(nifti) D:\Sources\Repos\University\TFM\PruebasPython\Nifty>

如果我在 Visual Studio Code 中使用 Ctrl. + F5 运行代码,它运行不会出现任何错误,尽管它会在 Problems 选项卡上显示错误。

使用 pyCharm,我没有收到任何错误。

我该如何解决这个问题?

【问题讨论】:

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


    【解决方案1】:

    如果您使用 Anaconda 虚拟环境

    1. 在 VS Code 中关闭所有打开终端
    2. 打开一个新终端
    3. 在终端中写入 Anaconda 激活文件夹的路径

      示例:E:/Softwares/AnacondaFolder/Scripts/activate

    现在应该显示 (base) 写在文件夹路径的开头

    1. 现在,conda 激活

      示例:conda activate Nifti

    现在应该显示 (Nifti) 写在文件夹路径的开头

    现在,如果你导入了一些东西,VS Code 会识别它。

    【讨论】:

    • 感谢您的回答,但它不起作用。我更新了我的问题,提供了更多信息以及在 VS Code 上打开新终端时得到的信息。
    • 您可以尝试禁用 Pylint:转到文件 >> 首选项 >> 设置搜索 python.linting.pylintEnable 并将其设置为 false &现在重启 VS Code
    • 如果我禁用 Pylint,错误就会消失。但这是解决问题的一种非常激进的方法。谢谢。
    • @VansFannel 问题出在 Pylint 上,因此您可以禁用每一行的特定导入警告,通过 Pylint 设置全局禁用特定警告,或者禁用 Pylint 本身。
    【解决方案2】:

    我已经尝试过您的代码,我的建议是从 pylint 切换到其他 lintings。远离那种愚蠢的棉绒。也许你可以试试 flake8: “python.linting.pylintEnabled”:假, “python.linting.flake8Enabled”:是的,

    出现这个问题是因为pylint无法搜索Anaconda的路径,因为'tensorflow'只能通过conda安装,只能选择Anaconda创建的环境。但是pylint不能跟随环境的变化来改变搜索路径,所以会提示导入错误。愚蠢的棉绒。

    【讨论】:

      猜你喜欢
      • 2020-10-13
      • 2021-07-18
      • 1970-01-01
      • 2022-08-09
      • 2022-11-16
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多