写在前面
由于前同事留下的一个爬虫项目,爬虫主要爬取别的系统的数据来支撑我们的数据大屏。同事留下的是在本地算是基本开发完毕的爬虫项目。我需要做的就是将项目部署上线在服务器上就可以了。但是因为我也刚更新设备,就记录一下我的整个流程。
代码是python3的写的,但是Mac OSX系统自带的是python2版本的。所以就想着就使用双Python版本就可以啦。
一.安装Python3
- 前置:安装好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 软件名
- 安装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
- 安装Python2
brew install python@2
这个时候会安装python2和pip2
查看版本:
python -V
pip2 -V
二.安装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中去吧
这样,整个部署就结束了。主要是想记录一下自己遇到的问题,希望对你也有帮助,哈哈哈~~~