生产环境下 python3 的问题

2014-11-28 13:15:39 +08:00
 p8p8
python3也已经出来蛮久了,但是还没看到过有人分享python3的生产环境部署方案。
我试着去部署一下,可以确定的一点是python3下面supervisor是没法用的,
请假各位大仙,有什么好的python3生产环境部署方案么?
8810 次点击
所在节点    Python
15 条回复
eriale
2014-11-28 13:37:26 +08:00
supervisor还没兼容py3,悲剧,另外fabric也只能py2.
你可以用py2运行supervisor,其他的用py3运行。
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
2014-11-28 14:00:42 +08:00
奇怪,不明白为什么要supervisor运行在py3.
你直接用py2运行py3不就可以了?
shiny
2014-11-28 14:03:14 +08:00
在我们的生产环境中就是 supervisor 来运行一个 py3 的 environment
bingwenshi
2014-11-28 14:26:03 +08:00
建议使用pyenv 每个项目都有自己的python版本
flyaway
2014-11-28 14:33:32 +08:00
@bingwenshi 同意
vJianZhen
2014-11-28 14:34:58 +08:00
@Med 你们说的supervisor是什么东西?部署完成的是哪些工作?呵呵,小白围观然后弱弱地发出疑问
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
2014-11-28 14:57:29 +08:00
@vJianZhen http://supervisord.org/
G一下,你就知道。一个python写成的linux下的进程监控软件,发现软件不在了会自动重新启起来。
vJianZhen
2014-11-28 17:16:35 +08:00
@zhs227 所以用在生产环境下可以实现服务器程序“永久运行”?
Feiox
2014-11-28 23:45:33 +08:00
关键是 Gevent 还不支持 Python 3 这是影响我们迁移的大问题 ~
@arbipher
@eriale

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

runit有两个功能,一个是替代init启动.另一个是监视进程,你不要翻第一个功能的文档,就不会掉坑里了。
p8p8
2014-12-02 00:23:25 +08:00
@bugeye 好的,谢谢你的指点,我去研究一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/149946

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX