1.建立安装python3的安装目录
mkdir /usr/local/python3
2.下载python3到任意目录(一般会放在download文件夹里),记得加–no-check-certificate
wget --no-check-certificate https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
若提示:bash: wget: command not found
执行:yum install wget
3.解压文件夹
tar -zxvf Python-3.6.2.tgz
4.安装更新编译的依赖文件
yum install gcc-c++
5.进入解压后的目录,然后输入configure命令,prefix指定的是第一步创建的文件夹
cd Python-3.6.2
./configure --prefix=/usr/local/python3
6.继续在解压的文件夹下编译与安装
make&&make install
如果在编译到最后出现如下报错:
zipimport.ZipImportError: can’t decompress data; zlib not available
make: *** [install] Error 1
请执行yum install zlib-devel 安装依赖 ,然后再重新执行上述命令。
最后安装成功,在/usr/local/python3文件夹下会有相应的python3文件。
7.创建python3的软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
之后我们能在任意位置直接输入python3来调用,并且能够使用python来调用python2
8.安装python2的pip
yum -y install epel-release # 安装epel扩展源 有些可能已经安装过的,就跳过
yum -y install python-pip
yum clean cache #清除缓存
,安装完成后可用pip list测试下,会显示python2下pip安装的包
[root@azimiao python3]# pip list
backports.ssl-match-hostname (3.5.0.1)
configobj (4.7.2)
decorator (3.4.0)
......
slip (0.4.0)
slip.dbus (0.4.0)
urlgrabber (3.10)
yum-metadata-parser (1.1.4)
You are using pip version 8.1.2, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
9.安装python3的pip
wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
tar -zxvf 9.0.1.tar.gz
cd pip-9.0.1
python3 setup.py install
10.成功之后创建软连接
ln -s /usr/local/python3/bin/pip /usr/bin/pip3
11.之后可以通过pip3 list来测试一下,如果有报红,可以通过
:pip3 install --upgrade pip
来升级一下pip3的版本
最后测试
[root@azimiao pip-9.0.1]# pip3 list
Package Version
---------- -------
pip 18.1
setuptools 28.8.0
若使用pip安装第三方库时,提示确实ssl无法下载,是因为缺少ssl模块,则往下安装openssl-devel并重新编译安装
yum install openssl-devel
cd /root/Python-3.6.2 #解压缩的文件夹
./configure --with-ssl --prefix=/usr/local/python3
make&&make install
最终测试正常安装库并且正常导入。
12.使用pip3 安装python虚拟环境
pip3 install virtualenv
安装过程可能会报黄提示,不要管它,有提示 successful就行了。
13.新建一个需要放入项目的文件夹
mkdir /usr/local/pywebapp
cd /usr/local/pywebapp
14.进入新建的文件夹下,创建python的虚拟环境
/usr/local/python3/bin/virtualenv -p /usr/bin/python3 venv
命令说明: /usr/local/python3/bin/virtualenv 是创建命令,/usr/bin/python3是指定python版本
完成后用ls查看下,会看得到有一个venv文件夹
[root@azimiao pywebapp]# ls
venv
15.激活或关闭虚拟环境
[root@azimiao pywebapp]# source venv/bin/activate
(venv) [root@azimiao pywebapp]#
激活后再命令行前面会有(venv)
若需要关闭虚拟环境 执行
venv) [root@azimiao pywebapp]# deactivate
[root@azimiao pywebapp]#
注:在虚拟环境下已经不分python2python3,就是使用命令python同理,进入的是你设置的虚拟环境的python版本,pip同理
16.虚拟环境下安装,Flask
pip install flask
17.在虚拟环境中安装 uWSGI
pip install uwsgi
18.测试能否正常运行uWSGI
安装后在文件夹下新建test.py的python文件,输入以下代码:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
使用命令
uwsgi --http :9090 --wsgi-file test.py
执行后,在浏览器输入:我的ip:9090 ,既能看到hello world
若打不开网页,多半是防火墙没开该端口,centos 7以上的系统的防火墙都是用firewall,要么关闭防火墙(不推荐),要么执行以下命令开启某端口
firewall-cmd --zone=public --add-port=80/tcp --permanent #premanent 是永久生效
firewall-cmd --reload #重新读取配置
19.最后对于长期提供服务的Flask web程序,最好是将配置文件放入配置文件中,在项目文件夹下配置config.ini文件 ,内容如下
[uwsgi]
# uwsgi 启动时所使用的地址与端口
socket = 127.0.0.1:8001
# 指向网站目录
chdir=/usr/local/pywebapp/myflaskwebapp
# python 启动程序文件
wsgi-file = manage.py
# python 程序内用以启动的 application 变量名
callable = app
# 处理器数
processes = 4
# 线程数
threads = 2
buffer-size = 32768
#状态检测地址
stats = 127.0.0.1:9191
20.启动和关闭uWSGI
- uwsgi启动:虚拟环境下 uwsgi config.ini
- uwsgi 关闭:虚拟环境下 killall -9 uwsgi
- 查看 uwsgi 进程: ps -ef | grep uwsgi
一般情况下,需要将服务后台运行,则需要使用nohup命令:
nohup uwsgi config.ini &