大家的python web应用怎么打包发布,用setup.py?

2012-08-17 10:58:34 +08:00
 vicalloy
昨天将我用Django写的博客系统发布到reddit (http://redd.it/yanrn)
其中有人提到 “Not packaged properly”。
不知道大家的python web项目是如何打包发布的。

目前大多著名的python web应用都是通过setup.py作为一个标准的python包安装的(如:trac、以及django-cms等大多数Django项目)。
实际上将web project作为标准python包发布,使用起来并不方便。
比如trac,你必须安装trac的文档去初始化一个trac环境,然后才能进行后续的配置工作。
如果是django项目,你必须自己创建一个project,然后按照文档修改配置。
此外静态资源文件等默认安装到python的libs目录下,如果没有提供命令,要去将这些静态资源文件托管到nginx也很烦人。

对其他语言的项目。
+ PHP自然是用源码方式安装。
+ ROR应用也是源码方式安装。

python为啥啥都要用个setup.py,难道因为更pythonic?就我自己的体验,直接使用git更新和部署的体验明显比使用setup.py要来的好。
5910 次点击
所在节点    Python
4 条回复
ratazzi
2012-08-17 12:21:17 +08:00
配合 fabric supervisor
bigeagle
2012-08-19 11:08:42 +08:00
我也有此疑问
reus
2012-08-19 11:41:13 +08:00
些新的php框架不也是用命令行来生成基础代码的么
rails也是要init的
vicalloy
2012-08-19 11:51:55 +08:00
@reus 是指的部署。
就如trac的安装部署 http://trac.edgewall.org/wiki/TracInstall#InstallingTrac
主要步骤为:

* pip easy_install Trac==1.0 #以标准包的方式进行安装
* $ trac-admin /path/to/myproject initenv #安装后会有一个trac-admin命令。使用trac-admin命令创建一个trac环境(配置文件等)
* 其他常规的部署工作

我是觉得对于web应用而言,直接用源码方式部署就可以了。按照trac的做法,你必须提供一个类似trac-admin的命令来辅助生成基础的配置环境。而且你为了支持初始化出来的配置环境,代码方面也需要做调整。个人感觉这都不是很有必要的。
此外对站点进行打包后,更新程序时还必须对python包进行重新打包安装,这点也不如git pull来的方便。

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

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

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

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

© 2021 V2EX