本文章是linux机器可以联网的情况下,安装python环境,以及部署flask项目的详细步骤。
如果已经安装过python环境,此步骤可以忽略
python环境的安装步骤:
1.linux环境下默认的python版本是2.7 ,如图所示本人的linux系统版本。
2.下载安装python环境需要的压缩包,我安装的是python3.7.3,如果你想安装其他的版本,可以修改相应的数字
举例:3.7.3/Python-3.7.3.tgz---》3.8.3/Python-3.8.3.tgz
wget --no-check-certificate https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
3.解压安装
cd /usr/local
mkdir python3
tar -zxvf ./Python-3.7.3.tgz -C /usr/local/python3
4.安装到指定的目录,然后构建安装
cd /usr/local/python3/Python-3.7.3 ./configure --prefix=/usr/local/python3 # 将python3安装在这个目录 make make install
5.执行make install 安装的时候,有时候报出这样的错误
解决办法:
yum install libffi-devel -y #安装libbffi-devel软件包 ./configure --prefix=/usr/local/python3 # 将python3安装在这个目录 make make install
问题原因:
Python3中有个内置模块叫ctypes,它是Python3的外部函数库模块,它提供兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用CentOS7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。 由于在CentOS7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pip的时候就报了"ModuleNotFoundError: No module named '_ctypes'"的错误。
6.重新执行完上面的命令之后出现,代表成功
7.接下来,还需要配置环境变量
vi ~/.bash_profile
添加以下代码:
export PYTHON_HOME=/usr/local/python3
export PATH=$PYTHON_HOME/bin:$PATH
8.执行命令,使配置文件添加的代码生效
source ~/.bash_profile
9.执行python3 -V,pip3 list 出现,证明python环境安装成功
安装flask环境:
nginx的安装:
1.首先安装nginx,下载并且解压
wget -c https://nginx.org/download/nginx-1.19.9.tar.gz
tar -zxvf nginx-1.19.9.tar.gz -C /usr/local
cd /usr/local
mkdir nginx
cd nginx-1.19.9
./configure --prefix=/usr/local/nginx
make&&make install
2.测试nginx是否安装成功
3.nginx安装成功的标志
4.nginx的热加载,如果修改了配置文件,可以通过下面这个命令进行热加载
./sbin/nginx -s reload
5.结束nginx进程的方法
强制停止:kill -9 nginx master 进程和work进程
批量停止:pkill nginx
uwsgi的安装:
1.安装命令
pip3 install uwsgi
flask的安装:
1.安装命令
pip3 install flask
重要:修改nginx的配置文件nginx.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
access_log /root/script/flask.log;
error_log /root/script/flaskError.log;
location /{
include /usr/local/nginx/conf/uwsgi_params; # 导入uwsgi配置
uwsgi_pass 127.0.0.1:5555; # 转发端口,需要和uwsgi配置当中的监听端口一致
uwsgi_param UWSGI_PYTHON /usr/local/python3/bin/python3; # Python解释器所在的路径,如果有虚拟环境可将路径设置为虚拟环境
uwsgi_param UWSGI_CHDIR /root/myproject; # 项目根目录
uwsgi_param UWSGI_SCRIPT app:app; # 项目的主程序,比如你测试用app.py文件,文件中app = Flask(__name__),那么这里就填app:app
}
# location / {
# root html;
# index index.html index.htm;
#}
uWSGI 配置:
mkdir script
vim uwsgi.ini
上传你的python测试代码:
mkdir myproject
代码测试内容:
from flask import Flask, request, jsonify from flask import render_template app = Flask(__name__) @app.route('/') def hello_world(): return "hello world" if __name__ == '__main__': app.run()
到现在为止,所有的安装工作已经准备就绪,接下来 启动服务
1.启动nginx
2.启动uwsgi,前台启动
但是不建议前台启动,建议后台启动
uwsgi -d --ini uwsgi.ini
3.访问linux的ip,结果返回的值
批量停止nginx和uwsgi
pkill -9 uwsgi
pkill nginx
注意可能会出现的错误:跨域问题:
https://blog.csdn.net/whatday/article/details/106298170/