Pylint无法识别我在VS Code上的Python导入,但是代码运行时没有任何错误

问题描述 投票:0回答:1

我正在使用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

在左下角,我可以看到:

enter image description here

当我在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>

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

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

我该如何解决此问题?

python visual-studio visual-studio-code anaconda pylint
1个回答
0
投票

如果您使用的是Anaconda虚拟环境

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

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

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

  1. 现在,conda启动

    示例:conda activate Nifti

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

现在,如果您导入了某些内容,VS Code将识别它。

© www.soinside.com 2019 - 2024. All rights reserved.