小编典典

PyCharm解析-flask.ext.sqlalchemy与flask_sqlalchemy

flask

如果我在应用程序中使用以下格式,则除PyCharms解析/自动完成功能外,其他所有功能均可用:

from flask.ext.sqlalchemy import SQLAlchemy

如果我在应用程序中使用以下格式,则一切正常。但是,a,这不是导入库的正确方法:

from flask_sqlalchemy import SQLAlchemy

有什么方法可以使PyCharm正确解析第一个语法?


阅读 499

收藏
2020-04-06

共1个答案

小编典典

该flask.ext命名空间是一个transistion命名空间,看到拓进口过渡部分的的瓶扩展开发文档:

一段时间以来,我们建议对Flask扩展使用名称空间包。实际上这是有问题的,因为存在许多不同的竞争名称空间包系统,并且pip会在不同系统之间自动切换,这给用户带来了很多问题。

Flask扩展名应该敦促用户从而flask.ext.foo不是flask_foo或从中导入,flaskext_foo 以便扩展名可以过渡到新的程序包名称而不会影响用户。

因此,要在版本之间进行转换,flask.ext添加了别名,该别名将在导入flask_[name]时自动尝试导入软件包flask.ext.[name]。但是现在这种过渡尚无定论。你将不再找到仍然完全依赖的软件包flask.ext。

因此,它是完全正常使用实际的模块名称和具有PyCharm自动完成了模块的内容。

你只有真正有在使用flask.ext,如果你还在使用扩展,需要兼容未来的旧版本。那个未来已经来临。

2020-04-06