Joh*_*ohn 5 python cython flask
我有一个 Python Flask 应用程序,需要使用 cython 进行编译。按照本指南,我可以编译一个简单的 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)
Run Code Online (Sandbox Code Playgroud)
它似乎编译得很好,但是当我尝试运行它时,我得到了这个:
Traceback (most recent call last):
File "./run.py", line 3, in <module>
from app import main
ImportError: cannot import name main
Run Code Online (Sandbox Code Playgroud)
当我尝试运行 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
)
Run Code Online (Sandbox Code Playgroud)
我的 main.py 看起来像这样:
#!/usr/bin/env python2
from app import main
main()
Run Code Online (Sandbox Code Playgroud)
Flask 是否使用了一些无法编译的功能?还是我做错了?
您没有main()在 中定义函数app.py,所以from app import main失败了,是的。
您可以导入appFlask 对象,然后调用run()该对象的方法:
from app import app
app.run(host='0.0.0.0', port=8000)
Run Code Online (Sandbox Code Playgroud)
并不是说您应该在生产部署中使用它。相反,您可以指示生产就绪的 WSGI 服务器使用模块app中的对象app作为 WSGI 应用程序。请参阅Flask 部署文档。
| 归档时间: |
|
| 查看次数: |
13470 次 |
| 最近记录: |