过渡到Werkzeug 1.0

Werkzeug最初有一个神奇的导入系统钩子,可以从一个模块导入所有内容,并且仍然可以根据需要延迟加载实际实现。不幸的是,在其他的python实现和谷歌的应用引擎上,这是缓慢的,也是不可靠的。

从0.7开始,我们建议不要使用短导入,强烈建议从实际的实现模块开始导入。Werkzeug 1.0将完全禁用魔法导入挂钩。

因为找出实际函数的导入位置并手工重写是一个痛苦而无聊的过程,所以我们编写了一个工具来帮助进行这种转换。

自动重写导入

例如,当werkzeug<0.7时,建议使用escape函数的方法是:

from werkzeug import escape

对于werkzeug 0.7,建议直接从utils模块导入此功能(对于1.0,这将成为强制要求)。要自动重写所有导入,可以使用 werkzeug-import-rewrite 脚本。

您可以通过使用python执行它,以及使用基于werkzeug的代码的文件夹列表来使用它。然后它将输出一个hg/git兼容的补丁文件。补丁文件创建示例:

$ python werkzeug-import-rewrite.py . > new-imports.udiff

要应用补丁,以下方法之一有效:

汞:

hg import new-imports.udiff

吉特:

git apply new-imports.udiff

补丁:

patch -p1 < new-imports.udiff