• 记录一次爬虫部署问题-主要爬取别的系统的数据来支撑我们的数据大屏


    写在前面

    由于前同事留下的一个爬虫项目,爬虫主要爬取别的系统的数据来支撑我们的数据大屏。同事留下的是在本地算是基本开发完毕的爬虫项目。我需要做的就是将项目部署上线在服务器上就可以了。但是因为我也刚更新设备,就记录一下我的整个流程。

    代码是python3的写的,但是Mac OSX系统自带的是python2版本的。所以就想着就使用双Python版本就可以啦。

    一.安装Python3

    1. 前置:安装好Homebrew【大概是Mac的包管理工具】
      常用操作:
      brew -v
      brew -h
      brew list
      brew search <包>
      brew install <包>
      brew uninstall <包>
      brew upgrade 软件名 更新具体软件名,例:brew upgrade git
      brew update 用于更新所有软件
    通过 update 可以把包信息更新到最新,不过包更新是通过git命令,所以要先通过 brew install git 命令安装git
    

    查看软件信息:brew info 软件名

    1. 安装Python3

    brew install python

    使用brew 来安装python会自动把pip装上,上面安装的是pip3(python3.x的包管理工具)。
    查看版本:

    python -V
    pip3 -V
    

    通过brew info python 可以知道:

    If you need Homebrew's Python 2.7 run
      		brew install python@2
    
    1. 安装Python2

      brew install python@2

    这个时候会安装python2和pip2
    查看版本:
    python -V
    pip2 -V

    1. 说明
      到这里环境中已经有了2和3版本的pyhton了,但是在使用python -V的时候,还是python2的版本,有的小伙伴可能想要修改默认的版本为python3,可以看看这篇文章

    二.安装virtualenv 和 virtualenvwrapper

    virtualenv是python的虚拟环境,能够和系统环境相隔离,保持环境的纯净;
    virtualenvwrapper可以方便的管理虚拟环境。

    由于项目代码是pyhton3 的我这里就使用pip3
    安装:

    pip3 install virtualenv
    sudo easy_install virtualenvwrapper
    

    接下来,设置虚拟环境的存储位置

    编辑系统环境变量

    vim ~/.bash_profile 
    #WORKON_HOME 创建虚拟环境所在的目录
    export WORKON_HOME=<你想要的位置>
    :wq
    
    source ~/.bash_profile 
    source /usr/local/bin/virtualenvwrapper.sh
    

    virtualenvwrapper的使用

    在执行之前可能得
    source /usr/local/bin/virtualenvwrapper.sh

    创建虚拟环境python3
    mkvirtualenv --python=/usr/local/bin/python3 env3

    创建虚拟环境Python2
    mkvirtualenv --python=/usr/local/bin/python env2

    列出虚拟环境
    lsvirtualenv -b

    切换虚拟环境
    workon env2

    查看环境里安装了哪些包,进去环境才行
    lssitepackages

    退出虚拟环境
    deactivate

    删除虚拟环境
    rmvirtualenv env2

    在虚拟环境中import所需的包,workon进到某个环境
    pip3 install scrapy
    pip2 install scrapy

    三. 项目部署

    根据上面的操作,我已经把项目所需要的环境和依赖包安装好了,并使用pycharm把项目代码在本地调试通过,没有问题了。准备上线。

    服务器上的环境安装我就不说了,直接说部署过程中的问题

    问题1:有一个lxrd 依赖线上环境没有这个,我就只有先下载再上传
    http://www.lfd.uci.edu/~gohlke/pythonlibs/
    pip install 下载的xxx

    问题2:在linux中运行python文件时 会遇到导包错误的情况
    ModuleNotFoundError: No module named 'xxx’
    由于不在pycharm中 所以这里不能将上一级目录加入 sources root

    解决方法:导入 项目根目录 到sys 系统路径中

    import os
    import sys
    curPath = os.path.abspath(os.path.dirname(__file__))
    rootPath = os.path.split(curPath)[0]
    sys.path.append(rootPath)
    

    上面代码放在from a import b 之前就可以啦。

    其余就没有什么大的问题了。

    接下来,就是写了一个简单的定时任务,每天凌晨一点执行一次

    0 1 * * * sh /home/liuge36/pachong/sbin/executespider.sh
    

    后面再把这个任务放置到azkaban中去吧

    这样,整个部署就结束了。主要是想记录一下自己遇到的问题,希望对你也有帮助,哈哈哈~~~

  • 相关阅读:
    JBuilder链接sql server数据库
    各种数据库连接代码(java)
    各种数据库连接代码的测试类(java)
    简单数据查询语句
    Oracle卸载
    Java字符串转换
    静态类示例
    授权对象的检查
    BAPI
    clear、REFRESH、free区别
  • 原文地址:https://www.cnblogs.com/liuge36/p/12614737.html
Copyright © 2020-2023  润新知