大佬教程收集整理的这篇文章主要介绍了使用 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
”显示自动完成选项:
由于VS Code在搜索文件时默认从当前文件的父文件夹开始,为了保证代码运行,我添加了代码
class_foo.f
,将文件路径添加到系统路径中,以帮助 VS Code 找到它。
,经过大量研究。 这不可能。因为数据是在运行时创建的。所以...... VSCode(或任何编辑器)可以事先获取信息。只有在创建之后,执行之后才有可能。更接近的解决方案是使用 Jupyter Notebook,但不适合大文件。
以上是大佬教程为你收集整理的使用 python importlib 会导致自动完成和 lint 丢失全部内容,希望文章能够帮你解决使用 python importlib 会导致自动完成和 lint 丢失所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。