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
p8p8
V2EX  ›  Python

生产环境下 python3 的问题

  •  
  •   p8p8 · 2014-11-28 13:15:39 +08:00 · 8695 次点击
    这是一个创建于 3632 天前的主题,其中的信息可能已经有所发展或是发生改变。
    python3也已经出来蛮久了,但是还没看到过有人分享python3的生产环境部署方案。
    我试着去部署一下,可以确定的一点是python3下面supervisor是没法用的,
    请假各位大仙,有什么好的python3生产环境部署方案么?
    15 条回复    2014-12-02 00:23:25 +08:00
    eriale
        1
    eriale  
       2014-11-28 13:37:26 +08:00
    supervisor还没兼容py3,悲剧,另外fabric也只能py2.
    你可以用py2运行supervisor,其他的用py3运行。
    Med
        2
    Med  
       2014-11-28 13:51:44 +08:00
    Supervisor works under Python 2 version 2.6 or greater and Python 3 version 3.2 or greater.
    github上介绍的
    scys
        3
    scys  
       2014-11-28 14:00:42 +08:00
    奇怪,不明白为什么要supervisor运行在py3.
    你直接用py2运行py3不就可以了?
    shiny
        4
    shiny  
       2014-11-28 14:03:14 +08:00
    在我们的生产环境中就是 supervisor 来运行一个 py3 的 environment
    bingwenshi
        5
    bingwenshi  
       2014-11-28 14:26:03 +08:00
    建议使用pyenv 每个项目都有自己的python版本
    flyaway
        6
    flyaway  
       2014-11-28 14:33:32 +08:00
    @bingwenshi 同意
    vJianZhen
        7
    vJianZhen  
       2014-11-28 14:34:58 +08:00
    @Med 你们说的supervisor是什么东西?部署完成的是哪些工作?呵呵,小白围观然后弱弱地发出疑问
    arbipher
        8
    arbipher  
       2014-11-28 14:43:20 +08:00
    supervisor和fabric都装在python2上

    supervisor的任务路径用path/to/python3 your_script.py就行了
    我的python3装在一个virtualenv里,所以
    supervisor的任务路径用的是path/to/virtualenv/of/python3 your_script.py

    fabric可以用run('work on virtualenv_name && python your script.py')
    命令多的话,可以
    with prefix('work on virtualenv_name')
    __run('python first.py')
    __run('python second.py')
    zhs227
        9
    zhs227  
       2014-11-28 14:57:29 +08:00
    @vJianZhen http://supervisord.org/
    G一下,你就知道。一个python写成的linux下的进程监控软件,发现软件不在了会自动重新启起来。
    vJianZhen
        10
    vJianZhen  
       2014-11-28 17:16:35 +08:00
    @zhs227 所以用在生产环境下可以实现服务器程序“永久运行”?
    Feiox
        11
    Feiox  
       2014-11-28 23:45:33 +08:00
    关键是 Gevent 还不支持 Python 3 这是影响我们迁移的大问题 ~
    @arbipher
    @eriale

    Python 3 下有较好的协程库么 ?
    bugeye
        12
    bugeye  
       2014-11-29 11:28:09 +08:00
    supervisor替代太多了,除非有特别需要,没必要非要它啊。
    p8p8
        13
    p8p8  
    OP
       2014-11-29 13:02:12 +08:00
    @bugeye 是吗?可能我了解的只有supervisor吧,还麻烦请告知一下,谢谢了啊。
    bugeye
        14
    bugeye  
       2014-11-29 18:12:19 +08:00
    @p8p8 daemontools upstart runit 都可以完成类似监视进程的功能。所以我说,除非你需要supervisor特殊功能(我没怎么用过supervisor也不知道它有没特殊功能),否则替代品挺多的。我个人用的runit,因为它足够轻,又能满足我的需要。

    runit有两个功能,一个是替代init启动.另一个是监视进程,你不要翻第一个功能的文档,就不会掉坑里了。
    p8p8
        15
    p8p8  
    OP
       2014-12-02 00:23:25 +08:00
    @bugeye 好的,谢谢你的指点,我去研究一下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1142 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:45 · PVG 02:45 · LAX 10:45 · JFK 13:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.