zoukankan      html  css  js  c++  java
  • 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

    完毕!

  • 相关阅读:
    异常处理(throw,throws,try,catch,finally)
    内部类、匿名内部类、静态内部类
    Object,equals,toString
    有关于多态和静态绑定与动态绑定的知识
    接口的基本知识
    关于继承的基本知识,方法重写,final和abstract的使用, 动态绑定和静态绑定的知识
    设计模式: 单列设计模式 、模块方法设计模式、装饰设计模式、工厂设计模式、适配器设计模式
    zabbix设置维护周期
    zabbix入门
    yum安装zabbix 5.0 LTS
  • 原文地址:https://www.cnblogs.com/smilevv/p/14138124.html
Copyright © 2011-2022 走看看