首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VS代码/ Pylance / Pylint无法解析导入

VS代码/ Pylance / Pylint无法解析导入
EN

Stack Overflow用户
提问于 2020-12-13 00:51:20
回答 5查看 20.8K关注 0票数 9

小结

我有一个python导入,当从VS代码终端运行时可以工作,但是VS代码的编辑器给出了警告。而且,“进入定义”也不起作用。

问题

我已经从映像tensorflow/tensorflow:1.15.2-py3创建了一个停靠容器,然后使用VS代码的“远程容器”扩展附加到它。然后,我在容器中创建了以下文件。

main.py:

代码语言:javascript
运行
复制
import tensorflow.compat.v1 as tf
print(tf.__version__)

这在VS代码终端中运行很好,但是编辑器和问题窗格都给了我一个unresolved import 'tensorflow.compat'警告。此外,“转到定义”在tf.__version__上也不起作用。

我使用了几个扩展,但我相信相关的扩展是Microsoft Python扩展(安装在容器中),以及远程容器扩展,现在是Pylance扩展(安装在容器中)。

我试过的东西

我已经在默认的pylint中尝试过这一点,然后在安装了具有类似结果的pylance之后也进行了尝试。我也看到了一些关于类似问题的文档,但它们与为项目中的模块设置正确的源文件夹位置有关。相反,在我的项目中,我的代码似乎可以很好地用于导入/自定义。外部库似乎不起作用。

此外,为了这个最小的例子,我已经将容器作为根附加到容器上,所以我猜这不是一个提升权限的问题。

除以下之外,我还尝试禁用所有扩展,但得到了相同的结果:

  • 远程集装箱(本地)
  • 远程- WSL (本地)
  • Python (在容器上)
  • 木星(容器上,因某种原因被Python所要求)

以上所有扩展都在最新版本上。

我还摆弄过设置python.autocomplete.extraPaths,但我不确定正确的路径是什么。向全局python安装中安装的路径添加库似乎也是错误的,特别是因为我没有使用虚拟环境(它位于码头容器中等等)。

问题

我如何修正VS代码,以便它能够识别这个导入,并且我可以使用“转到定义”来探索这些tensorflow函数/类/等等?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-12-15 19:29:29

tldr;

TensorFlow以一种无法识别的方式定义了它的一些模块。这些错误不一定表示不正确的设置。

致Fix:

  • pylint :,安全地忽略了pylint警告。
  • Intellisense :目前修复Intellisense的最佳方法是用它们混叠的模块替换导入(通过在repl中导入别名作为x,然后运行help(x))。因为在我的例子中别名的目标是内部名称,所以您可能不想签入对源代码管理的这些更改。不太理想。

详细信息

关于衬里:似乎tensorflow以工具无法理解的方式定义了它的模块。此外,该包似乎是另一个包的别名。例如:

代码语言:javascript
运行
复制
import tensorflow.compat.v1 as tf
tf.estimator.RunConfig()

上面的代码给出了pylint警告并破坏了intellisense。但是,如果您在REPL中手动导入上述内容并运行help(tf),它将显示下面的包,您可以使用该包:

代码语言:javascript
运行
复制
import tensorflow_core._api.v1.compat.v1 as tf
tf.estimator.RunConfig()

第二个示例不会导致pylint警告。此外,Intellisense特性(转到definition、Ctrl+Click等)使用第二个示例。

但是,基于_api,看起来第二个包名是一个内部命名空间,所以我猜最好只使用这个内部名称进行本地调试。

确认/票

票数 7
EN

Stack Overflow用户

发布于 2021-07-23 04:03:05

所以对我来说我试着

代码语言:javascript
运行
复制
import pandas as pd

但我得到了错误

代码语言:javascript
运行
复制
"pd" is not accessedPylance (module) pd

因此,我所做的就是重新加载扩展Pylance(Pylance),这解决了我的问题。

票数 3
EN

Stack Overflow用户

发布于 2021-12-17 22:14:18

我也有同样的问题,但是各种各样的包裹。我的解决方案是转到VSCode设置并搜索"python.analysis.extraPaths",并将路径添加到站点包中。

在我的例子中,我添加了C:\Code\Python39\Lib\site-packages,现在它运行良好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65271399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档