windows10 + centos + django2 + celery4 开发环境的搭建
在windows10环境中搭建了 django2.0.4 + celery4.4.2 的环境,经过调试可以通过命令调起 celery 的队列 celery worker -A config -l info -P eventlet,发现在使用其他功能时会出现各种莫名其妙的问题
而程序跑在centos环境中是没有问题的
习惯了在windows中使用pycharm开发程序,如果我们把在windows中开发的程序能运行在centos系统中,这样就可以加快开发和测试的效率,避免很多开源软件不能在 windows 中运行的问题了
环境:windows 和 centos中都要安装 python3.7.9
需要安装的第三方包:保持windows和linux版本一致
pip install celery==4.4.2
pip install eventlet==0.25.2
pip install Django==2.0.4pip install pymysql
pip install requests
pip install redis==3.4.1
整体思路是:
在windows中搭建好相关的开发环境:django + celery 并使用 cygwin 这个工具启用rsync服务端 --> 然后在 linux 中启用计划任务定时拉取windows中的python代码,也可以手动执行代码,一键同步程序到linux
1.windows中安装python3.7.9和虚拟环境,如果只是使用 django 功能可以在windows中跑起来,如果是 celery 等一些不常用的开源工具就有兼容问题了
pip install virtualenv
pip install virtualenvwrapper-win
# 创建虚拟环境 python379_django2
mkvirtualenv python379_django2
2.安装rsync服务
a.下载并安装cygwin 软件:https://cygwin.com/setup-x86_64.exe
然后通过 cygwin 软件安装 rsync同步和cygrunsrv服务管理 这两个插件,具体安装详情可以参考 https://www.cnblogs.com/reblue520/p/13691170.html
b.将 rsync 注册为 windows10 的系统服务
# cygwin 软件安装在了 d:/cygwin64 目录下,大家可以根据情况修改
cygrunsrv -I "Rsync" -p "d:\\cygwin64\\bin\\rsync.exe" -a "--config=d:\\cygwin64\\etc\\rsyncd.conf --daemon --no-detach" -f "Rsync daemon service" --user administrator --passwd password --stdout "d:\\cygwin64\\rsyncd-stdin.log" --stderr "d:\\cygwin64\\rsyncd-stderr.log" -y "tcpip" -e "CYGWIN=nontsec binmode" -c "d:\\cygwin64" -o
rsync 的主配置文件:D:\cygwin64\etc\rsyncd.conf
use chroot = yes
max connections = 4
log file = /var/log/rsyncd.log[windows_video]
path = /cygdrive/d/python/django_imooc_xiaobai/muke_vedio_test/video
read only = false
transfer logging = yes
secrets file = /etc/rsyncd.secrets
D:\cygwin64/etc/rsyncd.secrets 密码:
apache:pass
3.在centos系统中启用计划任务拉取windows代码的脚本
# 计划任务
# every 10 minutes rsync win to local
*/10 * * * * /bin/bash /usr/local/worksh/win_vedio_tolocal.sh
# 拉取windows --> centos 脚本
# cat /usr/local/worksh/win_vedio_tolocal.sh
#!/bin/bash
source /etc/profile
# windows的ip地址,从windows主动拉取代码到本机
src_ip="10.9.4.199"# 拉取windows的文件到centos中
/usr/local/rsync/bin/rsync -avzP --delete --exclude="*.pyc" --password-file=/data/www/.rsync/rsyncd.win.pass apache@${src_ip}::windows_video /data/www/vhosts/video/
# 修改密码权限 /data/www/.rsync/rsyncd.win.pass
#
# cat /data/www/.rsync/rsyncd.win.pass
pass
4.centos中 安装 python3.7.7 + django2 + celery 环境
安装python3.7.7可以参考:https://www.cnblogs.com/reblue520/p/12489897.html
# 安装虚拟工具
pip3 install virtualenvwrapper
# 创建虚拟环境
mkvirtualenv python37_django2 --python=python3
新建存放环境目录
mkdir -p ~/Envs
配置virtualenvwrapper环境
# vim /etc/profile
# 设置virtualenvwrapper
export WORKON_HOME=~/Envs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/bin/python3
# 打开终端自动启用
source /usr/local/python3/bin/virtualenvwrapper.sh
# 列出存在的虚拟环境
# lsvirtualenv
# 进入虚拟环境
# workon python37_django2
# 安装依赖
pip install celery==4.4.2
pip install eventlet==0.25.2
pip install Django==2.0.4pip install pymysql
pip install requests
pip install redis==3.4.1
备注:
因为使用了mysql和redis 数据库,可以和windows共用
修改redis 的配置:
redis.windows-service.conf
修改绑定并开放端口即可
bind 0.0.0.0