通过pip安装必要的包,比如flask、opencv-python、opencv-contrib-python、plotly等。
通过gunicorn来启动flask利用,使用方法见:flask下 gunicorn在Python中的使用。
Gunicorn-配置详解(注意这个地方踩了一个坑,主要是由于自己对网络编程不熟:gnicorn会使用多线程,而自己编写的程序中使用的是传统的Python的全局变量,而没有援用flask的那些与request、context相干的全局变量,致使在程序运行时每点一下按钮,会出现不同结果。)
一个较详细的部署教程见:通过Gunicorn部署flask利用(阿里云主机:Ubuntu 16.04)中间出现了以下几个问题,并给出解决方法:
(1)导入opencv时,报错:ImportError: libSM.so.6: cannot open shared object file: No such file or directory
ImportError: libXrender.so.1: cannot open shared object file: No such file or directory
缘由是:服务器在安装时没有安装图形库。解决方法:apt-get install libsm6 libxrender1
参考见下面链接:服务器opencv-python使用问题及解决
(2)在履行到imgproc时,出现:TypeError: Expected cv::UMat for argument 'M',怀疑是python2.7的锅,所以重新配置了pipenv,使用python3环境就行了。以下是具体配置进程:
首先需要升级一下,否则阿里云找不到pip3:apt-get update
然后安装pip3:apt-get install python3-pip
然后使用pip3安装pipenv pip3 install pipenv
使用pipenv创建虚拟环境时,指定python版本:pipenv --python 3 install
(3)启动了flask服务器,但是外部没法连接,总是“time out”:
这是由于阿里云默许只开启几个端口,如果需要额外的端口,需要自己去防火墙那开启。
参考见:在ecs上启动flask利用后,没法通过公网ip访问网站。
以上就是如何部署阿里云主机的相干方法,希望能帮助到大家。
TOP