尝试导入Python Flask-Compress时如何处理此错误

时间:2018-09-25 10:25:35

标签: python flask gzip

我想从我的Flask应用程序中提供压缩文件,然后环顾四周,找到了该解决方案。

from flask import Flask
from flask.ext.compress import Compress

app = Flask(__name__)
Compress(app)

这就是文档上所说的内容,但是当我尝试并实际执行此操作时,我得到了一个错误。

Cannot find reference 'compress' in '__init__.py' less... (⌘F1) 
This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items.

因此,我无法导入Compress。

有人知道如何解决此问题,并且可能是在我的Web应用程序上压缩文件的另一种方法。

我已将模块正确导入Pycharm,因为我的IDE显示它们已安装。只是当我尝试在应用程序中执行以上操作时,我收到此错误。

感谢您的时间。

2 个答案:

答案 0 :(得分:0)

摘自flask-compress的自述文件。

  

在许多情况下,不能指望Flask实例在导入时就准备好,并且一种常见的模式是仅在处理完其他配置详细信息后才从函数内返回Flask实例。在这种情况下,Flask-Compress提供了一个简单的函数init_app,它将您的应用程序作为参数。

您尝试使用它吗?

from flask import Flask
from flask_compress import Compress

compress = Compress()

def start_app():
    app = Flask(__name__)
    compress.init_app(app)
    return app

此外,我建议您对所有进口商品都使用新的Flask进口标准,所以

from flask_compress import Compress

代替原来的

from flask.ext.compress import Compress

答案 1 :(得分:-1)

我使用zipfile压缩文件。在简介中:

  

ZIP文件格式是一种常见的存档和压缩标准。该模块提供了用于创建,读取,写入,附加和列出ZIP文件的工具。如要进一步使用此模块,将需要了解PKZIP应用说明中定义的格式。

使用ZipFile.write(filename),您可以将文件写入表示存档的ZipFile对象。