• python项目部署到linux系统


    引用: https://www.cnblogs.com/grimm/p/11104562.html   https://www.cnblogs.com/zhongyehai/p/10619917.html

    第一步:安装Python3环境

    1.首先安装编译环境(后续需要从python官网获取Python3的源码自己编译python)

    1
    yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

    2.从官网下载python3的源码

    1
    wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

    3.依次执行 解压>进入解压后的目录>编译安装

    1
    2
    3
    4
    tar -xvJf  Python-3.6.2.tar.xz
    cd Python-3.6.2
    ./configure prefix=/usr/local/python3
    make && make install

    4.安装完毕,创建软连接

    1
    2
    3
    4
    5
    ln -s /usr/local/python3/bin/python3 /usr/bin/python
    # 执行命令
    python -V #将会看到python3的版本
    # 执行命令
    python2 -V #将会看到python2的版本

    5.后续工作,由于执行CentOS的yum命令需要使用自带的python2的版本,所以需要做两处修改

    1
    2
    3
    vim /usr/bin/yum
    vim /usr/libexec/urlgrabber-ext-down
    #将 这两个文件的 #! /usr/bin/python修改为 #! /usr/bin/python2

    第二步:将本地开发环境的依赖项目生成清单文件

    1.在本地的开发环境中,env下执行, 导出当前环境下所有的包:

    1
    pip3 freeze >requirements.txt

    如果只想导出当前项目下引用的包:   进入项目的根目录下执行  pipreqs ./  如果文件已存在  --force  覆盖原来文件

    清单文件将会生成在当前项目目录下,内容如下所示

    1
    2
    3
    4
    5
    certifi==2018.4.16
    chardet==3.0.4
    idna==2.7
    requests==2.19.1
    urllib3==1.23

    将生成后的文件上传到linux服务器

    2.将Python项目上传到服务器

    1
    #略...

    第三步:在linux服务器上为项目创建虚拟环境,并安装项目所需的依赖

    1.切换到pip3所在的目录 /usr/local/python/bin,执行以下命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # 安装虚拟环境
    pip3 install virtualenv

    # 创建虚拟环境 ENV
    virtualenv ENV

    # 切换到虚拟环境所在的目录
    cd ENV

    # 启用虚拟环境
    source ./bin/activate

    # 安装依赖清单里的库
    pip3 install -r requirements.txt

    # 列出当前虚拟环境所安装的依赖库
    pip3 list

    2.如果没有安排pip:

    wget https://bootstrap.pypa.io/get-pip.py

    运行脚本python get-pip.py

    查看版本pip -V

    如果pip -V,出现notfound,把pip加到环境变量

    [finance@finance-06 bin]$ echo 'export PATH=/usr/local/python3/bin:$PATH' >>~/.bashrc
    [finance@finance-06 bin]$ source ~/.bashrc

    第四步:添加自定义系统服务(很重要)

    1
    2
    # 这样的命令在ssh终端退出后,python进程也会被杀掉
    python xxx.py &

    需要创建一个自定义的系统服务,来保证python程序能够在后台运行。

    1.创建系统服务

    1
    vim /usr/lib/systemd/system/robot.service

    内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [Unit]
    Description=robot
    After=network.target

    [Service]
    Type=forking
    ExecStart=/usr/local/python3/bin/ENV/bin/python /data/python/main.py &
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target

    ExecStart为服务启动时执行的命令,不能用相对路径, 一定要全路径。
    这里也可以将命令写到任意的.sh文件中,这里写.sh文件的全路径也是可以的。

    2.启用自定义系统服务

    1
    systemctl enable robot

    3.启动服务

    1
    systemctl start robot

    可以查看进程,确认一下服务是否启动

    1
    ps aux|grep robot
  • 相关阅读:
    循环
    list和tuple
    Python字符串和编码注意点
    【转载】国内安卓推送的希望
    【转载】Android属性动画和视图动画的区别
    【转载】Android 属性动画详解
    【转载】 android 属性动画详解
    java8 新特性学习详细篇2
    java8 新特性详细篇
    JAVA8十大新特性
  • 原文地址:https://www.cnblogs.com/fanshudada/p/14875382.html
Copyright © 2020-2023  润新知