最新Python部署详细教程

切换python3为默认

一般服务器都是默认python2

直接输入python 可以看到默认是python3 还是python2

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

安装python3-pip

# ubuntu
sudo apt install python3-pip
# centOS
sudo yum install python3-pip

安装虚拟环境

pip3 install virtualenv
pip3 install virtualenvwrapper

如果安装 virtualenvwrapper 报红

sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pbr
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-deps stevedore
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-deps virtualenvwrapper

再次安装 virtualenvwrapper

pip3 install virtualenvwrapper

配置环境变量

mkdir $HOME/.virtualenvs

编辑 bashrc文件

vim ~/.bashrc

如果提示 没有vim

# ubuntu
sudo apt install vim
# centOS
sudo yum install vim

进入编辑状态后直接在文件末尾处添加

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

12.png

保存退出

按键 Esc
按键 SHIFT + !
按键 wq
按键 Enter

让刚才编辑的 文件生效

source ~/.bashrc

创建虚拟环境

mkvirtualenv django_env

(django_env) 代表进入了虚拟环境

13.png

在虚拟环境种安装项目依赖的包

需要提前准备 requirements.txt文件

# 虚拟环境下
pip install -r requirements.txt

虚拟环境相关操作

进入

workon 虚拟环境名称

退出

deactivate

删除虚拟环境

rmvirtualenv 虚拟环境的名字

项目相关 编辑项目的nginx.conf文件

1.进入到项目根目录

flask : 找到app.py的路径 或者 manage.py 的路径

例如: /home/www/project/app.py

django:找到manage.py的路径

例如:/home/www/project/manage.py

2.创建项目的nginx.conf文件

进入项目根目录
cd /home/www/project
创建该项目的nginx.conf (也可以创建到其他地方如果项目多的话)
vim nginx.conf

nginx.conf编辑的内容

uwsgi_pass版本
# 写入
server {

    listen         80; # nginx 端口号
    server_name    47.100.100.10 
    #server_name:你的服务器外网ip
    charset UTF-8;
    client_max_body_size 75M; # 限制最大请求体大小

    location/{
        # 把vue 的dist 文件放在项目目录下
        root /home/www/project/dist;
        index index.html;
        try_files $uri $uri/index.html $uri.html;
    }

    location /api/ { # / 代表所有路径都到该项目区找
        include uwsgi_params; # 导入uwsgi配置
        uwsgi_pass 127.0.0.1:8000; # 项目运行的ip端口
        uwsgi_read_timeout 300;
        uwsgi_send_timeout 300;
        uwsgi_connect_timeout 300;
    }
    location /static/ {
    #  静态文件配置
        alias /home/www/project/dist/static/;
     }
    #location /media/ {
    #   静态文件配置
    #   alias /home/www/project/media/;
    # }
 }
proxy_pass 版本
# 写入
server {

    listen         80; # nginx 端口号
    server_name    47.100.100.10 
    #server_name:你的服务器外网ip
    charset UTF-8;
    client_max_body_size 75M; # 限制最大请求体大小

    location / { # / 代表所有路径都到该项目区找
        proxy_pass http://127.0.0.1:8000; # 项目运行的ip端口
    }
    location /static {
    #  静态文件配置
        alias /home/www/project/static/;
     }
    #location /media {
    #   静态文件配置
    #   alias /home/www/project/media/;
    # }
 }

nginx相关

查看nginx配置文件路径

locate nginx.conf

或者

find / -name nginx.conf

普通版nginx(非宝塔版)

安装
# ubuntu
sudo apt install nginx 
# centOS
sudo yum install nginx

安装完成后 请访问你的服务器ip 查看是否有nginx的页面

如果没有 请重启nginx(操作步骤如下)

如果有则安装成功

启动
service nginx start
重启
service nginx restart
重加载
service nginx reload
停止
service nginx stop
普通版nginx.conf 文件位置
/etc/nginx/nginx.conf

备份nginx.conf配置文件

nginx搞崩了 十分麻烦 请先备份

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.copy
# 前面的路径是被拷贝的文件 后面的路径是要拷贝到的文件(直接创建)
# 如果在当前目录下 可以不添加路径

宝塔版nginx

安装:在宝塔上直接安装

启动
nginx -s start
重启
nginx -s restart
重加载
nginx -s reload
停止
nginx -s stop
宝塔版nginx.conf 文件位置
/www/server/nginx/conf/nginx.conf

备份nginx.conf配置文件

nginx搞崩了 十分麻烦 请先备份

cp /www/server/nginx/conf/nginx.conf /www/server/nginx/conf/nginx.conf.copy
# 前面的路径是被拷贝的文件 后面的路径是要拷贝到的文件(直接创建)
# 如果在当前目录下 可以不添加路径

编辑 nginx自带的nginx.conf文件

编辑之前请先备份nginx.conf文件 (重要步骤)

此nginx.conf 区别于 项目的nginx.conf

# 非宝塔版
vim /etc/nginx/nginx.conf
# 宝塔版
vim /www/server/nginx/conf/nginx.conf 

大致在第63行添加内容

把刚刚配置的项目的nginx.conf 文件 导入到 原nginx.conf文件中

include /home/www/project/nginx.conf;
1594396731453

重加载nginx.conf 文件 ( reload)

# 看上面 普通版 或者 宝塔版

无任何反应 说明 正常

有提示 则错误 :配置文件 应该是多打了 东西 或者少打 了东西

可以按照提示去查找原因

使用uwsgi 或者 gunicorn启动

一. 使用UWSGI

虚拟环境下 安装uwsgi

pip install uwsgi

创建并配置uwsgi.ini文件

vim uwsgi.ini
# 最好创建在项目目录下 方便管理
# 例如 /home/www/project/uwsgi.ini

编辑的内容

django版

# uwsgi.ini 的内容
[uwsgi]

#django 端口号

# 和nginx交互的ip端口
# 注意和项目下的nginx.conf文件中的uwsgi_pass的ip端口一样
socket = 127.0.0.1:8000

#项目 目录
chdir = /home/www/project/

#Django 项目下 wsgi.py 文件路径
module = django_work.wsgi:application

# 其他 根据自己需求 查询uwsgi配置 改变
master = true

#进程数4个的  配置
processes = 4
# 线程数5个
threads = 5
enable-threads = true
listen = 100
harakiri = 60
idle = 500
vacuum = true
# logto = /home/user/log/uwsgi.log
# 测试时不开logo日志,可以直接看到后台的print信息 以及一些错误信息

flask版

# uwsgi.ini 的内容
[uwsgi]

#django 端口号

# 和nginx交互的ip端口
# 注意和项目下的nginx.conf文件中的uwsgi_pass的ip端口一样
socket = 127.0.0.1:5000

#项目 目录
chdir = /home/www/project/

#flask 项目下 manage.py 文件路径 app 代表app.run()
# 如果是manage.run() 则 module = manage:manage
module = manage:app
# 或者app.py
# module = app:app


# 其他 根据自己需求 查询uwsgi配置 改变
master = true

#进程数4个的  配置
processes = 4
# 线程数5个
threads = 5
enable-threads = true
listen = 100
harakiri = 60
idle = 500
vacuum = true
# logto = /home/www/project/log/uwsgi.log
# 测试时不开logo日志,可以直接看到后台的print信息 以及一些错误信息

启动 uwsgi

直接启动
uwsgi --ini uwsgi.ini
后台启动
uwsgi -d -ini uwsgi.ini
关闭后台所有uwsgi进程
sudo pkill -9 uwsgi
检测uwsgi是否在后台启动
ps -ef | grep uwsgi

二. 使用gunicorn

一种是通过配置文件启动 类似 uwsgi

另一种是命令行输入相关配置

现在说一种不一样的

(我比较喜欢用这种方式,比较简单,不用写配置文件)

虚拟环境下安装gunicorn

pip install gunicorn

django版

django是通过wsgi.py启动的

在项目的根目录下

gunicorn -w 2 127.0.0.1:8000 项目的文件名.wsgi -D

-w 2 : 代表启动两个进程

-D 代表后台启动

flask版

flask 是通过 app.py文件里的app启动的

app.app

如果是manage.py 里面的 manage 则是

manage.manage

在app.py的同级目录下
gunicorn -w 1 127.0.0.1:8000 app.app -D

pip安装mysql-client 报错

sudo apt-get install python-dev default-libmysqlclient-dev
sudo apt-get install python3-dev
sudo apt-get install libssl-dev

再次安装mysql-client

你可能感兴趣的:(最新Python部署详细教程)