Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Web服务器上部署Python脚本_Python_Api_Flask_Server_Celery - Fatal编程技术网

在Web服务器上部署Python脚本

在Web服务器上部署Python脚本,python,api,flask,server,celery,Python,Api,Flask,Server,Celery,我在Python 3.6.3中做了一个项目,它有两个主要模块,分别是- (opencv python==3.4.0.12) (tf夜间==1.8.0.dev20180329) 它现在在我的本地机器上运行。我想通过Flask将其部署到web服务器上,作为网站。我知道我可以在我的Flask.py中调用我的主脚本,即main.py(创建该脚本只是为了给出一个想法) Flask.py from flask import Flask import main # Main Python Script

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

  • (opencv python==3.4.0.12)
  • (tf夜间==1.8.0.dev20180329)
它现在在我的本地机器上运行。我想通过Flask将其部署到web服务器上,作为网站。我知道我可以在我的
Flask.py
中调用我的主脚本,即
main.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)
我浏览了一些链接,了解了和链接(适用于Keras,我正在使用Tensorflow),这里给出了将模型部署为API

因此,我很难弄清楚应该如何将我的项目部署为网站或API

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

任何人请告诉我如何处理这个问题。谢谢大家!

一般来说:

两者都可以:可以在同一台机器上运行WebServer和API。这只是正确设置代理服务器的问题。也可以从服务器进行API调用。API有助于保持MVC架构的简洁

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

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


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


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

谁将使用您的机器学习工具?一次调用你的函数需要多长时间?我大学的教员。我的脚本平均在25-30秒@syntony内给出输出实际上,我使用的是Tensorflow的CPU版本,我的主脚本只对我的机器学习模块进行了一次调用,我的脚本最多在30秒或40秒内给出输出。那么,如果我像我在问题的代码存根中提到的那样实现我的flask应用程序,它还会减慢速度吗@MIKA72哪种方法是通用的@Mika72一般/通用(在部署任何web服务时)在我的答案中是水平线。对于使用web服务的AI,从“For Keras,…”开始。