V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
rockhead
V2EX  ›  Python

请教: 如何部署python代码?

  •  
  •   rockhead · 2012-07-27 14:14:04 +08:00 · 6578 次点击
    这是一个创建于 4537 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用DJANGO开发的系统; 现在只会用SFTP把本地整个目录upload到服务器里面;然后重启uwsgi;
    这个方法太难受了;

    是否有更好的方式? 第一次涉及web开发...
    13 条回复    1970-01-01 08:00:00 +08:00
    clino
        1
    clino  
       2012-07-27 14:27:22 +08:00   ❤️ 1
    有git或者其他的版本管理工具能用吗?能用的话从本地push到服务器上再更新好了
    或者用 rsync+ssh 同步文件?
    lerry
        2
    lerry  
       2012-07-27 14:28:17 +08:00   ❤️ 1
    用版本控制工具,也可以用现成的服务 github bitbucket,本地测试好,就push上去,然后登陆线上服务器fetch,或者如果你用vim,可以直接在线上开发呀
    chon
        3
    chon  
       2012-07-27 14:31:08 +08:00   ❤️ 1
    用git就好
    shiweifu
        4
    shiweifu  
       2012-07-27 14:40:08 +08:00   ❤️ 1
    如果有依赖库,最好使用virualenv,避免把服务器弄乱
    neildd
        5
    neildd  
       2012-07-27 14:45:29 +08:00   ❤️ 1
    1. 配置参数文件化,将数据库用户名密码等参数写在配置文件中。
    2.开发环境用GIT或者svn等版本管理系统,如果用了github或者bitbucket会很方便的导出代码到生产环境。我自己是用bitbucket多一些,可以将某个修订版的代码一键导出zip包。
    3.写部署脚本,可以是python,也可以是shell、perl。。。。挑顺手的来。部署脚本要做的就是将一个zip包的源代码布置到生产环境,同时对原有生产环境代码做备份。
    4.django的服务器我用的是nginx+uwsgi, 操作系统我习惯用CentOS. 这样我就在/etc/init.d/中加入了nginx的服务脚本,在里面同时对uwsgi做了操作。所以这样就很方便
    icyleaf
        6
    icyleaf  
       2012-07-27 16:37:26 +08:00   ❤️ 1
    1. 使用 git + hooks
    ) 可以参考我的实现方式:http://icyleaf.com/2010/09/apps-auto-deploy-with-git/
    ) https://github.com/mislav/git-deploy/
    2. Fabric
    9hills
        7
    9hills  
       2012-07-27 16:39:09 +08:00   ❤️ 1
    其实也不用非得要git。。。sftp+restart uwsgi也可以自动化啊

    用shell写个脚本就好了,一键执行。。
    okidogi
        8
    okidogi  
       2012-07-27 16:44:51 +08:00   ❤️ 1
    @icyleaf 其实fabric是最靠谱的方式,git+hooks适合没事儿写着玩的网站。过两天我把我们用的fabfile.py整理整理发布到github上。
    rockhead
        9
    rockhead  
    OP
       2012-07-27 17:57:56 +08:00
    谢谢各位; 现在用的是SVN 也许用SVN CO 一下是个选择

    Fabric 第一次听说,了解一下;

    virualenv也需要了解下
    icyleaf
        10
    icyleaf  
       2012-07-27 19:32:17 +08:00
    @okidogi 嗯,提供两套解决方案,就看他们是正规化部署还是自己玩的方式部署 :)
    ewangke
        11
    ewangke  
       2012-07-27 20:21:46 +08:00
    我平时用fabric
    bigzhu
        12
    bigzhu  
       2012-07-27 22:46:25 +08:00   ❤️ 1
    @rockhead svn也有hook的,里面加个svn up和重启uwsgi的命令就可以了
    rockhead
        13
    rockhead  
    OP
       2012-07-29 11:41:17 +08:00
    @bigzhu 谢谢 我试一下 :)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:56 · PVG 03:56 · LAX 11:56 · JFK 14:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.