CentOS上的python安装流程

  1. 下载python3.7.1
    wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz -P /usr/src

    下载到 /usr/src内
    =

  2. 解压
    tar xf Python-3.7.1.tar.xz

  3. 安装依赖包
    如果有就不用安装
    yum -y install gcc-* openssl-* libffi-devel sqlite-devel

  4. 配置文件检测
    ./configure --enable-optimizations --with-openssl=/usr/bin/openssl

  5. 可以在这里先把pip的ssl错误调整,看下面

  6. 编译
    make j4

  7. 安装
    make install

注意

  • 默认安装 径:/usr/local/lib/python3.7

  1. 升级pip
    pip3 install --upgrade pip
'''如果在升级pip过程报错提示 找不到SSL模块'''

# cd到python目录中
vim Modules/Setup

# 将SSL注释解开一共4行!!
# 第211-214行
SSL=/usr/local/ssl
_ssl _ssl.c \
    ...
    ...

然后重新 make install python

安装python虚拟环境

为每一个项目创建一个python的虚拟环境,不用每个项目都共用一个环境(每个环境可以安装自己的插件)

pip3 install virtualenv

使用方法

# 创建环境
virtualenv -p python3 web (环境名叫web)

# 生效环境
source web/bin/activate
'''当命令行前面有web后,说明已经进入虚拟环境'''
安装Django

pip3 install django

部署发布环境

uwsgi的安装

uwsgi是服务 和服务端应 程序的通信协议,规定 怎么把请求转发给应 程序和返回,用来发布python网站的

  1. 安装 pip3 install uwsgi
  2. 创建配置文件目录 mkdir /etc/uwsgi
  3. 编辑配置文件 vim /etc/uwsgi/uwsgi.ini

【最下一行是django路径根据不同配置】

[uwsgi]
uid = root 
gid = root 
socket = 127.0.0.1:9090   
master = true            
vhost = true              
no-site = true            
workers = 2                 
reload-mercy = 10           
vacuum = true              
max-requests = 1000           
limit-as = 512 
buffer-size = 30000
pidfile = /var/run/uwsgi9090.pid   
daemonize = /var/log/uwsgi9090.log
pythonpath = /root/web/lib/python3.7/site-packages

【说明】

[uwsgi]
uid = root                  //谁启动的uwsgi
gid = root                  //组是谁
socket = 127.0.0.1:9090    //启动的ip和端口
master = true               //启动主进程
vhost = true                //多站模式
no-site = true              //多站模式时设置模块和件
workers = 2                 //进程数
reload-mercy = 10           //平滑的重启 
vacuum = true               //退出、重启时清件
max-requests = 1000         //开启10000个进程后,自动respawn下   
limit-as = 512  // 将进程的总内存 控制在512M 
buffer-size = 30000
pidfile = /var/run/uwsgi9090.pid    //pid件于脚本启动、停该进程 
daemonize = /var/log/uwsgi9090.log  
pythonpath = /root/web/lib/python3.7/site-packages  //django的路径,如果是虚拟环境要特别注意一下

手动启动方法: uwsgi --ini /etc/uwsgi/uwsgi.ini检查是否启动 netstat -ntpl

  1. 制作脚本启动 vim /etc/init.d/uwsgi
  2. 写进脚本(严格按照格式)复制的时候前面两行会自动复制错误,请注意!!
#!/bin/sh
  DESC="uwsgi daemon"
  NAME=uwsgi
  DAEMON=/usr/local/bin/uwsgi
  CONFIGFILE=/etc/uwsgi/$NAME.ini
  PIDFILE=/var/run/${NAME}9090.pid
  SCRIPTNAME=/etc/init.d/$NAME
  FIFOFILE=/tmp/uwsgififo
  set -e
  [ -x "$DAEMON" ] || exit 0
  do_start() {
  if [ ! -f $PIDFILE ];then
      $DAEMON $CONFIGFILE || echo -n "uwsgi  running"
  else
      echo "The PID is exist..."
  fi
}
  do_stop() {
  if [ -f $PIDFILE ];then
      $DAEMON --stop $PIDFILE || echo -n "uwsgi not running"
      rm -f $PIDFILE
      echo "$DAEMON STOPED."
  else
      echo "The $PIDFILE doesn't found"
fi }
  do_reload() {
  if [ -p $FIFOFILE ];then
      echo w > $FIFOFILE
  else
      $DAEMON --touch-workers-reload $PIDFILE || echo -n "uwsgi
can't reload"
fi }
  do_status() {
      ps aux|grep $DAEMON
}
  case "$1" in
  status)
      echo -en "Status $NAME: \n"
do_status ;;
  start)
      echo -en "Starting $NAME: \n"
      do_start
;; stop)
      echo -en "Stopping $NAME: \n"
      do_stop 
;;
reload|graceful)
      echo -en "Reloading $NAME: \n"
      do_reload
;; *)
      echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2
      exit 3 
;;
esac 
exit 0
  1. 给与权限! chmod 755 /etc/init.d/uwsgi
  2. 启动命令 /etc/init.d/uwsgi status 运行 /etc/init.d/uwsgi start 检查是否启动 netstat -ntplsudo netstat -antup
  3. 停止命令 /etc/init.d/uwsgi stop
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值