概述
一、升级Python(默认为2.6.6)
1、开发工具包及相关组件的安装及升级
yum -y update
yum groupinstall "Development tools" -y
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel -y
yum install xz*
yum install gcc
2、下载Python3.6.5
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
3、解压,并进入解压后的文件夹
tar xf Python-3.6.5.tar.xz
cd Python-3.6.5.tar.xz
4、设置安装目录
mkdir /usr/local/python3
./configure --prefix=/usr/local/python3
5、编译及安装
make
make install
6、备份原有的python命令执行文件
mv /usr/bin/python /usr/bin/python2.6
备份完成后执行
python2.6 -V
结果应为Python 2.6.6,表示备份成功
7、为Python 3.6.5创建软连接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
执行前请先确认/usr/bin/python文件不存在,否则无法创建软连接
8、查看pytho版本
python -V
结果应为python 3.6.5
9、修改yum配置文件
由于yum基于python2.6运行,而当前的python版本为3.6,所以需要修改
vim /usr/bin/yum
将#!/usr/bin/python 中的python修改为 python2.6
二、安装VirtualEnv
1、查看pip版本
pip -V
若不是python 3.6版本的pip,则为其创建软连接
rm -rf /usr/bin/pip 删除原pip软连接
ln -s /usr/local/python3/bin/pip /usr/bin/pip
查看pip版本
pip -V
发现已经变为3.6版本
2、pip升级
pip install --upgrade pip
3、安装VirtualEnv
pip install virtualenv
4、创建虚拟目录的语法为
virtualenv 目录名
例如我的项目目录为/root/flask_server
cd /root/flask_server
virtualenv venv
注:若执行”virtualenv 目录名” 时提示command not found,请按照以下步骤操作
find / -name virtualenv 找到virtualenv的安装位置
我这边的结果为“/usr/local/python3/bin/virtualenv”
所以创建虚拟环境目录的方式为
/usr/local/python3/bin/virtualenv venv
5、激活和退出虚拟环境
source venv/bin/activate 激活环境
deactivate 退出环境
注:激活环境需要用source命令,否则会报permission denied
6、通过清单文件安装flask及其他依赖,我的清单文件如下(按照你的依赖库来列)
requirement.txt
Flask==1.0.2
Flask-HTTPAuth==3.2.3
Flask-Migrate==2.1.1
Flask-Moment==0.6.0
Flask-SQLAlchemy==2.3.2
Flask-Script==2.0.6
Jinja2==2.10
Mako==1.0.7
MarkupSafe==1.0
SQLAlchemy==1.2.8
Werkzeug==0.14.1
alembic==0.9.9
click==6.7
itsdangerous==0.24
mysql-connector==2.1.6
python-dateutil==2.7.3
python-editor==1.0.3
setuptools==39.0.1
six==1.11.0
激活虚拟环境后执行
pip install -r requirements.txt
记住,一定要激活虚拟环境后再安装,否则会安装到全局中
7、测试flask
项目根目录新建test.py文件
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
在虚拟环境下运行test.py
python test.py
访问locallhost:5000 将返回
注:若是云服务器环境,请将app.run()改成
app.run(host='0.0.0.0',host=端口号,debug=True)
并将服务器对应的端口号开放,随后就可以用“公网ip:端口号”的形式访问
三、安装nginx和uwsgi
1、安装nginx
yum install nginx
yum install uwsgi
2、测试nginx
直接在浏览器中输入 locallhost:80
云服务器则输入 公网IP:80
看到nginx的欢迎界面就表示安装成功
注:云服务器请确认开放了80端口
3、为uwsgi配置nginx
编辑配置文件
vim /etc/nginx/conf.d/default.conf
改成如下内容
server {
listen 80; #监听的端口号
#listen [::]:80 default_server;
server_name 47.101.49.82 #公网IP
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000; # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
uwsgi_param UWSGI_PYHOME /root/flask_server/venv; # 指向虚拟环境目录
uwsgi_param UWSGI_CHDIR /root/flask_server; # 指向网站根目录
uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序
}
}
重启nginx
service nginx restart
4、配置uwsgi,我是通过配置文件来完成的,在项目根目录下创建配置文件config.ini
内容为
[uwsgi]
plugins = python #指定python插件
master = true
home = venv #指定虚拟环境目录
chdir = /root/flask_server #指向项目根目录
# python 启动程序文件,我这边
wsgi-file = test.py
# python 程序内用以启动的 application 变量名
callable = app
#uwsgi启动时所使用的地址与端口,即test.py启动时的地址,
#如果是使用app.run()启动,即为127.0.0.1:5000
socket = 127.0.0.1:5000
# 处理器数
processes = 4
# 线程数
threads = 2
启动uwsgi
uwsgi config.ini
此时,本地服务器在浏览器中输入 locallhost:80
云服务器则输入 公网ip:80
浏览器应该输出
若服务器提示 “Internal Server Error”
且控制台提示
可能是由于当前使用的uwsgi的python版本不对,需要指定用python3中的uwsgi启动
/usr/local/python3/bin/uwsgi config.ini
到此,环境搭建完毕,搭建途中踩了很多坑,翻了无数网页,故此整理了一下流程。
最后
以上就是清爽书包为你收集整理的centos Python3.6.5 flask+uwsgi+nginx环境搭建一、升级Python(默认为2.6.6)二、安装VirtualEnv三、安装nginx和uwsgi的全部内容,希望文章能够帮你解决centos Python3.6.5 flask+uwsgi+nginx环境搭建一、升级Python(默认为2.6.6)二、安装VirtualEnv三、安装nginx和uwsgi所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复