为了使用celery替代crontab并做到实时添加定时任务的效果,需要使用django-celery,效果如下图,
要使用django-celery,需要安装python的以下包:django,celery,django-celery。其中django安装比较麻烦,首先它和python版本相关,django1.7.9和1.8.3都是支持python 2.7,所以打算安装这俩版本中其一;其次,django需要sqlite2或sqlite3的支持,而python 2.7中sqlite是已经包含在内、却没有编译的,因此先要安装sqlite、然后重新安装python 2.7。整个开发环境安装和配置如下
一. 环境配置
tar -xzvf sqlite-autoconf-3081002.tar.gz
./configure --prefix=/home/panxiaofeng/install #指定安装目录
make
make install
接着重新安装python 2.7,首先,
tar -zxf Python-2.7.9.tgz
cd ~/tools/Python-2.7.9
修改setup.py,
sqlite_inc_paths = [ ‘/usr/include‘,
‘/usr/include/sqlite‘,
‘/usr/include/sqlite3‘,
‘/usr/local/include‘,
‘/usr/local/include/sqlite‘,
‘/usr/local/include/sqlite3‘,
‘~/install/include‘,
‘~/install/include/sqlite3‘,
]
也就是加上sqlite3的路径,然后,
./configure --prefix=/home/panxiaofeng/install/ && make -j4 && make install #4核并行编译
ln -s ~/install/bin/python ~/bin/python
完成。
测试安装成功否,
~/bin/python
>>>import sqlite3
>>>
没报错即可。
配置python开发环境,不仅要安装python 2.7,还需要安装一些工具,
unzip setuptools-12.0.3.zip 2>/dev/null 1>/dev/null
cd ~/tools/setuptools-12.0.3
~/bin/python setup.py build install #用哪个python来安装包,包就会安装到哪个python的目录下,其他版本的python无法使用该包
tar -zxf pip-6.0.6.tar.gz
cd ~/tools/pip-6.0.6
~/bin/python setup.py build install
ln -s ~/install/bin/pip ~/bin/pip
其中pip工具用来安装python包很方便,但是默认的源下载很慢经常超时,需要采用一些方法加速,具体可以参考http://blog.csdn.net/sasoritattoo/article/details/10020547 。本文安装加速的手段采用了最简单的换源:
sudo ~/bin/pip install -i http://pypi.douban.com/simple django,用豆瓣的源,暴快!注意,用哪个python安装的pip工具来安装包,包就会安装到哪个python的目录下,其他版本的python无法使用该包。然后,celery和django-celery也采用该源来安装,快得很,不像之前用默认的源,很卡很慢还经常失败。
记录一下,之前也手动安装过Django,手动安装唯一需要注意的一点就是sudo python setup.py时搞清楚你用的是哪个版本的python,不要搞错版本了,如果默认的python不能用,就自己指定,比如,sudo /usr/local/bin/python2.7 setup.py install。还有手动安装比较利于卸载包:
setup.py 帮助你纪录安装细节方便你卸载
python setup.py install --record log
这时所有的安装细节都写到 log 里了
想要卸载的时候
cat log | xargs rm -rf
就可以干净卸载了
最后记录下解决pip下载失败的一些可能有用的方法:
出现Bad md5 hash for package https://here/package/path错误时,尝试,
1. You can use wheels for installing python packages: pip install wheel. Then t