程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 python importlib 会导致自动完成和 lint 丢失大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 python importlib 会导致自动完成和 lint 丢失?

开发过程中遇到使用 python importlib 会导致自动完成和 lint 丢失的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 python importlib 会导致自动完成和 lint 丢失的解决方法建议,希望对你解决使用 python importlib 会导致自动完成和 lint 丢失有所启发或帮助;

首先。一些上下文。我有一个类可以帮助导入多个模块,因为这将动态完成,因此使用 importlib 库很重要,到目前为止一切正常。但是……自动完成功能完全丢失,lint 没有响应(vs-code)。

问题是:如何恢复自动完成和 lint?

示例代码如下


# ----------- file foo.py
import tyPing,types,importlib

print("foo was imported!")

class foo () : 
    def __init__ ( self ) : pass
    def foo_get_doble( self,number : int ) -> int : return number*2
    def foo_print_Hello_word( self ) -> None : print("Hello world")


# ----------- file __init__.py
import tyPing,sys,importlib

if __package__ : 
    template_module = importlib.import_module( f"{__package__}.foo" )
else : 
    print( "NO PKG" )
    sys.path.append( r"C:\working_folder" )
    foo_R_246_11845@od = importlib.import_module( "foo" )

importlib.reload( foo_R_246_11845@od )
# foo_class = foo_R_246_11845@od.  # NO HINTS NO lint nO TYPE checK nothing (vs-codE)
foo_class = foo_R_246_11845@od.foo() # but its there. works.

#output
# NO PKG
# foo was imported!
# foo was imported!

导入后的期望:

enter image description here

我得到了什么:

enter image description here

编辑

经过长时间的搜索。似乎 importlib 并没有像这样返回自定义模块。但是一个 TypeModule 什么的。这是一种通用模块类。当我从模块中得到任何东西时,我得到这样一个 TypeAny。然而,知道这一点并不能解决问题我如何投射类型。或者作为模块的填充,以便识别类和方法?

解决方法

在 VS Code 中,Python 的 LinTing 功能和自动补全功能是由 Python 扩展提供的。因此,建议您重新安装python扩展并重新加载VS Code。

python代码分析工具的使用,以Pylint为例,请在您当前使用的python环境中安装“pylint”模块,然后运行。

@H_874_35@

更新:

当我使用“@H_427_9@myIcon1.run(group1) myIcon2.run(group2) myIcon3.run(group3) ”导入文件“from de.foo import fo”中的方法fo()时,“foo.py”显示自动完成选项:

使用 python importlib 会导致自动完成和 lint 丢失

由于VS Code在搜索文件时默认从当前文件的父文件夹开始,为了保证代码运行,我添加了代码

class_foo.f

,将文件路径添加到系统路径中,以帮助 VS Code 找到它。

:LinTing in VS Code。

,

经过大量研究。 这不可能因为数据是在运行时创建的。所以...... VSCode(或任何编辑器)可以事先获取信息。只有在创建之后,执行之后才有可能。更接近的解决方案是使用 Jupyter Notebook,但不适合大文件。

大佬总结

以上是大佬教程为你收集整理的使用 python importlib 会导致自动完成和 lint 丢失全部内容,希望文章能够帮你解决使用 python importlib 会导致自动完成和 lint 丢失所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。