首页
学习
活动
专区
圈层
工具
发布

VScode (?)
EN

Stack Overflow用户
提问于 2018-04-15 21:25:32
回答 2查看 1.2K关注 0票数 4

我正在使用astropy的单位和EartLocation来设置我的天文台位置。现在硬编码了。

但是,当我在VScode中运行代码时,pylint会让我陷入错误,而当我在PyCharm和空闲中运行它时,代码就会运行得很好。

代码:

代码语言:javascript
复制
obsy_location = EarthLocation(lat=52.91044*units.deg, lon=5.242664*units.deg, height=0*units.m)

Pylint在这一行代码中给了我3个错误:

E 1101:模块'astropy.units‘没有'deg’成员,也许'dex'? E 1101:模块'astropy.units‘没有'm’成员,也许'g'? E 1101:模块“astropy.units”没有“小时”成员

请注意,我是个新手,但是由于PyCharm和空闲似乎都没有任何问题来运行这一行,所以我想知道VScode的pylint在这里做什么。有人能启发我吗?

我使用最新的Anaconda解释器运行VScode。

EN

回答 2

Stack Overflow用户

发布于 2018-04-30 11:42:27

像pylint或PyCharm这样的工具可以进行静态代码分析。在大多数Python代码中,它们通常做得很好,但是在使用Python的动态特性的情况下,它们失败了。

在本例中,astropy.units在导入时执行Python代码来生成单元对象,如deg (表示单元“度数”)或m (表示单元“度量衡”)。从这个意义上说,看到"astropy.units没有成员deg“警告是正常的,因为静态分析工具没有执行导入,因此它们的分析中不存在这些东西。我看到了来自PyCharm的相同警告(它有自己的静态分析,在后台不像在您的例子中那样执行PyLint )。

现在总是可以配置静态分析工具来忽略某些类的警告。看看https://stackoverflow.com/a/39500741/498873,我希望这个VS代码配置设置能做到这一点(但没有尝试):

代码语言:javascript
复制
"python.linting.pylintArgs": [
    "--extension-pkg-whitelist=astropy.units"
]
票数 3
EN

Stack Overflow用户

发布于 2018-06-21 00:38:43

晚会晚了,但这件事是在我试图解决问题的时候出现的。将此添加到我的设置中,可以使我关闭该pylint警告:

代码语言:javascript
复制
"python.linting.pylintArgs": [
    "--ignored-classes=astropy.units"
]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49846940

复制
相关文章

相似问题

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