搭建python下web (tornado + Dgango)

来源:互联网 发布:成都余香科技知乎 编辑:程序博客网 时间:2024/06/16 22:20

[program:tornado_oa-9003]command=/home/albert/githublearning/system-foro_a/ENV/bin/python /home/albert/  githublearning/system-foro_a/oa_web/run.py --port=9003autostart=trueautorestart=true[program:dgango_oa]command=/home/albert/githublearning/system-foro_a/ENV/bin/python /home/albert/  githublearning/system-foro_a/oa_admin/manage.py runserverautostart=trueautorestart=true

安装virtualenv  (用于创建独立的Python环境,多个Python互相独立,互不影响)

sudo apt-get install python-virtualenv

如:创建**ENV**的虚拟环境

virtualenv ENV

启动虚拟环境
cd ENV
source ./bin/activate



退出虚拟环境:

接下来所有模块都只会安装到该目录中去:pip install **

deactivate


../env/bin/pipinstall -r requirement.txt进行批量安装:

 requirement.txt里面内容为:

Django==1.5

django-grappelli==2.4.8       #×××××××用来进行django 的admin功能进行界面美化的
south
MySQL-python
tornado==3.1.1
xlrd                                   #××××××作为操作xlrd的

中间可能会碰到不能安装MySQL-python的情况那就要先

 1安装mysql-server   mysql-client  

 2 sudo apt-get install build-essential python-dev libmysqlclient-dev


如果有时碰到如下面的问题:

Traceback(most recent call last):

File"run.py", line 3, in <module>

fromoa_web.settings import settings

File"/home/administrator/www/pinhui_oa/oa_web/oa_web/settings.py",line 5, in <module>

fromoa_admin.init import init_django_settings

ImportError:No module named oa_admin.init

那是因为没有连接库:链接一个库到pythonsite-packages中:

administrator@ubuntu:~/www/pinhui_oa/oa_web/env/lib/python2.7/site-packages$ln -s ~/www/pinhui_oa/oa_admin/oa_admin/ . 


我自己开发的环境为了方便开发时启动服务器而编写的脚本:

python编写 启动web,admin服务器的脚本:

#!/usr/bin/python
#start web tornado server and dgango server
"""
use subprocess to run run.py

and os.system to run manage.py

"""
import os.path as osp 
import os
import sys 
import subprocess
path = osp.abspath(osp.dirname(__file__))
tornadoserverpath = path+'/pinhui_oa/oa_web'
dgangoserverpath = path+'/pinhui_oa/oa_admin'
pythonenv = path+'/env/bin/python'
#add sys.path for tornado dgango
sys.path.append(tornadoserverpath)
sys.path.append(dgangoserverpath)
#fork process for run.py   and then exec manage.
print "%s" %(sys.argv[0])
subprocess.Popen('env/bin/python %s/run.py' %tornadoserverpath,shell=True)
os.system('env/bin/python %s/manage.py "runserver"' %dgangoserverpath)


在生产环境的时候一般用supervisord来进行启动程序的监控进行自动重启工作:

1:生成和编辑 supervisord.conf进行要添加的进程如下面: 

[program:nginx]command=/usr/local/nginx/sbin/nginxpriority=1numprocs=1autostart=trueautorestart=true[program:tornado_oa-9000]command=/home/albert/githublearning/system-foro_a/ENV/bin/python /home/albert/  githublearning/system-foro_a/oa_web/run.py --port=9000autostart=trueautorestart=true

[program:tornado_oa-9003]command=/home/albert/githublearning/system-foro_a/ENV/bin/python /home/albert/  githublearning/system-foro_a/oa_web/run.py --port=9003autostart=trueautorestart=true[program:dgango_oa]command=/home/albert/githublearning/system-foro_a/ENV/bin/python /home/albert/  githublearning/system-foro_a/oa_admin/manage.py runserverautostart=trueautorestart=true

2.添加可视化管理功能  修改/etc/supersord.conf

[inet_http_server]         ; inet (TCP) server disabled by default

port=127.0.0.2:9001        ; (ip_address:port specifier, *:port for all iface)
username=user              ; (default is no username (open server))

password=123               ; (default is no password (open server))



3.运行supervisord

 sudo supervisord -c /etc/supervisord.conf

4.supervisord操作命令  先用 supervisorctl进入命令环境,然后查看--help进行操作,可以通过reload等进行控制

注意:要以root形式运行supervisord,避免有些程序因为权限问题不能启动。





0 0
原创粉丝点击