python - 你如何用cython编译一个 flask 应用程序?

标签 python flask cython

我有一个 Python flask 应用程序,我需要使用 cython 进行编译。 正在关注this guide ,我可以编译一个简单的 python 应用程序,但是当我对一个简单的 flask 应用程序做同样的事情时:

#!/usr/bin/env python2

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "hello"

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=8000)

它似乎编译得很好,但是当我尝试运行它时,我得到了这个:

Traceback (most recent call last):
  File "./run.py", line 3, in <module>
    from app import main
ImportError: cannot import name main

当我尝试运行 main.py 时。

我的 compile.py 看起来像这样:

#!/usr/bin/env python2

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [ 
    Extension("app",  ["app.py"]),
]
setup(
    name = 'My Test Website',
    cmdclass = {'build_ext': build_ext},
    ext_modules = ext_modules
)

我的 main.py 看起来像这样:

#!/usr/bin/env python2

from app import main
main()

flask是否使用了一些无法编译的特性?还是我做错了?

最佳答案

您没有在 app.py 中定义 main() 函数,所以 from app import main 失败了,是的。

您可以只导入 app Flask 对象,然后调用 run() 方法:

from app import app

app.run(host='0.0.0.0', port=8000)

并不是说您应该在生产部署中使用它。相反,您可以指示生产就绪的 WSGI 服务器使用 app 模块中的 app 对象作为 WSGI 应用程序。查看Flask deployment documentation .

关于python - 你如何用cython编译一个 flask 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50932527/

相关文章:

flask - jQuery post 到 Flask,如何请求数据?

python - 使用 docker-compose run 时无法从 up 服务访问容器

python - sympy 编译具有大矩阵的函数

python - 需要从 lxml.etree 模块模拟 ElementTree 类的 write() 方法

c++ - 来自 cython wiki 的 Hello World 不起作用

python - 如何在 Pandas 中将多种日期格式转换为一种格式

python - 如何在 Python 中对字典中的值进行排序?

javascript - 如何使用 jquery selected multiple select 用 flask 捕获 html 表单输入

python - 如何在 Python 子进程模块中使用管道命令字符串?

python - 比较文件中的标记并生成通用标记/值