寫在前面
由於前同事留下的一個爬蟲項目,爬蟲主要爬取別的系統的數據來支撐我們的數據大屏。同事留下的是在本地算是基本開發完畢的爬蟲項目。我需要做的就是將項目部署上線在服務器上就可以了。但是因爲我也剛更新設備,就記錄一下我的整個流程。
代碼是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中去吧
這樣,整個部署就結束了。主要是想記錄一下自己遇到的問題,希望對你也有幫助,哈哈哈~~~