在 Web 服务器上部署 Python 脚本



我在Python 3.6.3中做了一个项目,它有两个主要模块,它们是-

  • OpenCv(opencv-python==3.4.0.12)
  • TensorFlow(tf-nightly==1.8.0.dev20180329)

它现在在我的本地机器上运行。我想通过Flask将其作为网站部署在 Web 服务器上。我知道我可以调用我的主要脚本,main.py在我的Flask.py(创建只是为了给出一个想法)

Flask.py

from flask import Flask
import main # Main Python Script
app = Flask(__name__)
@app.route('/')
def my_script():
main.some_func()
........
.......
.......
.......

if __name__ == '__main__':
app.secret_key = 'super_secret_key'
app.debug = True
app.run(host='0.0.0.0', port=8000)

我浏览了一些链接并了解了 Celery 和这个链接(它适用于 Keras,我正在使用 Tensorflow)在这里将模型部署为API

所以我很难弄清楚如何将我的项目部署为网站或 API。

  • 如果作为一个网站,那么我应该采取什么措施? 我应该简单地调用函数还是使用芹菜
  • 如果作为 API,那么我的 API 不需要一个 Web 服务器,我的网站不需要另一个 Web 服务器吗?

(我的结论可能是错误的)

任何人都可以告诉我如何处理这个问题。谢谢!

一般来说:

您可以同时执行这两项操作:您可以在同一台机器上运行 Web 服务器和 API。这只是正确设置代理的问题。API 调用也可以从您的服务器进行。API 有助于保持 MVC 架构的直接性。

您可以稍后为您的 API 和 Web 服务器使用单独的服务器,如果它们之间存在一些不利影响(性能问题)。

API 方法的最大缺点是性能损失,但您仍然可以在 Web 服务器中编写绕过它的脚本。


对于 Keras、Tensorflow 或任何 AI 实现,我强烈建议使用单独的服务器,因为这是资源密集型的(训练时需要大量的 GPU 能力),并且 Web 服务器更需要 CPU(或多或少稳定的负载)。

但在投入生产之前,通用方法仍然是可行的。

相关内容

  • 没有找到相关文章

最新更新