Anaconda
Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。
下载安装
官方下载地址:https://repo.anaconda.com/archive/ (下载速度太慢,建议用下面的地址)
清华大学镜像站下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
下载
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2019.03-Linux-x86_64.sh
centos安装新版本到了Unpacking payload就卡着不动,建议下19.03之前的版本
安装
sh Anaconda3-2019.03-Linux-x86_64.sh
选择默认路径安装(/root/anaconda3),建议不要改动
创建python虚拟环境
激活anaconda
source anaconda3/bin/activate
安装virtualenv
pip install virtualenv
创建目录
mkdir ~/myProject
cd ~/myProject
创建虚拟环境目录
virtualenv venv
激活新创建的虚拟环境:
source venv/bin/activate
测试运行
安装Flask
pip install flask
创建一个py文件
vim ~/myProject/app.py
复制下列代码进去
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'hello world!'
if __name__ == '__main__':
app.run(host='0.0.0.0')
回到命令行,运行
python app.py
最后浏览器访问测试(不要忘了开放防火墙)
uWSGI
uWSGI的功能是把HTTP协议转化成语言支持的网络协议供python使用。
安装
pip install uwsgi
配置
项目跟目录下创建配置文件
vim uwsgi.ini
复制下列代码进去
[uwsgi]
socket = 127.0.0.1:5000
chdir = /root/myProject # 项目文件存放位置
wsgi-file = app.py # app初始化文件
callable = app # Flask对象
运行
项目根目录下运行
uwsgi --ini uwsgi.ini #根目录下执行
#uwsgi -d --ini uwsgi.ini 后台运行
#pkill -f uwsgi -9 杀掉进程
此时运行可能会报错
1、error while loading shared libraries:xxx
解决办法:从anaconda3里面把缺少的文件复制到/lib64下面。
例如,启动uwsgi时报错为:
uwsgi: error while loading shared libraries: libicui18n.so.58
表示缺少了libicui18n.so.58
cp /root/anaconda3/lib/libicui18n.so.58 /lib64
2、uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_xxx’ not found
解决方法:用anaconda3中libstdc++.so.6.0.25替换原来的libstdc++.so.6
cd /lib64 #进入目录
rm -rf libstdc++.so.6 #删除原文件
cp /root/anaconda3/lib/libstdc++.so.6.0.25 /lib64 #复制
ln -s libstdc++.so.6.0.25 libstdc++.so.6 #创建替换链接
成功运行后退出继续配置nginx
nginx
nginx接收到浏览器发送过来的HTTP请求,将包进行解析。如果是静态文件请求就直接访问用户给nginx配置的静态文件目录,直接返回用户请求的静态文件。如果不是静态文件,而是一个动态的请求,那么nginx就将请求转发给uWSGI。
安装
yum -y install nginx
配置
创建配置文件
vim /etc/nginx/conf.d/myProject.conf
复制下列代码进去
server
{
listen 80;
server_name x.x.x.x; # 服务器IP地址或是域名
location /
{
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000; # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
uwsgi_param UWSGI_PYHOME /root/myProject/venv; # 指向虚拟环境目录
uwsgi_param UWSGI_CHDIR /root/myProject/; # 指向网站根目录
uwsgi_param UWSGI_SCRIPT app:app; # 指定启动程序及Flask对象
}
}
运行
systemctl start nginx
systemctl enable nginx ##设置开机自启动
最后浏览器访问测试,完成!
参考:
https://blog.csdn.net/qq_42766994/article/details/100067426