• linux上部署python本地开发环境


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

    1.在本地的开发环境中,env下执行:

    1
    pip3 freeze >requirements.txt

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

    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
    关闭虚拟环境:
    deactivate

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

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

     使用pip3 install -r requirements.txt 报:

     解决办法:

    我们都知道,想要进行pip升级,其实只要在命令行运行以下代码即可:

    python -m pip install --upgrade pip
    

    但是由于种种原因,该联网直接下载更新包的方法总是会被不知名的原因打断,并反复提示上图的错误。经过种种尝试和网络上资料搜寻,本人终于试出一种可行方法,其需要三个注意事项:

    1.不要直接win+R然后cmd,而是要选择“开始”—“Windows系统”—“命令提示符”—右键“以管理员身份运行”!!!
    2.不要用家用WiFi,开手机热点连接!!!
    3.管理员身份运行命令提示符后,使用镜像下载升级!!!代码如下:

    python -m pip install --upgrade pip -i https://pypi.douban.com/simple

    问题一:安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法

    1、执行如下命令:

    yum install libffi-devel 
    

    2、从"./configure ..."重新安装

    问题二:pip3 install时报错“pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.”

    先安装openssl-dev,然后重新编译安装,只是在编译的过程中加入 --enable-optimizations

    ubuntu:

    sudo apt-get install libffi-dev

    或者

    1. sudo apt-get update
    2.  
    3. sudo apt-get upgrade
    4.  
    5. sudo apt-get dist-upgrade
    6.  
    7. sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
    8.  
    9. sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
    10.  
    11. sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
    12.  
    13. sudo apt-get install libssl-dev openssl
    14.  
    15. sudo apt-get install libffi-dev

    centos7

    yum install libffi-devel -y

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

    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 /usr/local/python3/bin/ENV/p3.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

    完毕!

  • 相关阅读:
    函数的有用信息,装饰器 day12
    函数名、闭包、装饰器 day11
    函数的动态参数与命名空间 day10
    函数 day9
    集合 day8
    文件操作 day8
    基础数据类型补充,及capy daty7
    day7 回顾
    编码补充 daty 6
    字典的增删改查 daty 5
  • 原文地址:https://www.cnblogs.com/smilevv/p/14138124.html
Copyright © 2020-2023  润新知