是站点包适合于应用程序或只库?

我在一点与其他一些开发商对一个开源项目的讨论。 我是新来的Python,但在我看来,站点包是为图书馆,而不是最终用户的应用程序。 这是真的还是站点要安装的软件包旨在由最终用户运行的应用程序的适当位置?

--------------解决方案-------------

一旦你的地步,你的应用程序已经准备好进行分发,它包起来您最喜爱的分布/在那会使你的代码库在站点包和可执行脚本的系统路径的方式操作系统。

在此之前(即对所有的开发工作),不做任何上述的:保存自己主要的头痛和使用zc.buildout或virtualenv中,让您的开发代码(如果你喜欢,它的依赖以及)分离出休息制度。

我们不喜欢这样。

大多数我们下载的东西是在站点包。 他们来自pypi或开源社区或一些其他外部来源; 他们很容易重建; 他们高度重用; 他们并没有太大变化。

必须的东西,我们写的是在其他位置(通常在/optc:\opt是包含在PYTHONPATH

有保持我们的东西出了没有很大的理由site-packages 。 然而,我们的软弱的借口是,我们的东西改变了很多。 差不多不断。 要在站点包每次重新安装,我们认为我们有更好的东西是一个有点疼痛。

由于我们正在测试我们的工作目录或SVN检出目录中,我们的测试环境中大量使用的PYTHONPATH

开发利用PYTHONPATH流血过度投入生产。 我们使用setup.py生产的安装,但是安装到下一个替代家用/opt并设置PYTHONPATH包括/opt/ourapp-1.1

最终用户运行该程序通常是在某处他们的道路,大部分的模块目录中的代码,这往往是在站点包。

许多Python程序将位于路径,其中进口模块,和所谓的“主”的方式运行程序的小脚本。 这使得如果需要找到所需的模块程序员做一些前期的检查,并可能修改sys.path中。 这也可以加快加载时间对大项目,因为只有被导入的文件会从字节码运行。

站点包是图书馆,肯定。

混合方法可能的工作:你可以安装在站点包应用程序所需的库,然后安装主模块的其他地方。

如果你可以把应用程序的一部分,一个图书馆,并提供一个API,然后站点包是为它的好去处。 这是许多Python应用程序实际上是如何做到这一点。

但是,从用户或视管理员点是不实际的问题。 问题是,我们如何管理已安装的东西。 之后,我已经安装了它,我怎么能升级和卸载呢?

我使用Fedora。 如果我使用随附的蟒蛇,我不喜欢安装的事情站点包RPM的系统之外。 在某些情况下,我建立了自己的RPM安装它。

如果我建立我自己的Python RPM之外,那么我自然要使用Python的机制来管理它。

第三种方法是使用类似的easy_install安装这样的事情,例如为用户的主目录。

所以

  • 允许包装分布。
  • 允许您选择使用Python。
  • 允许使用python通过分布安装在您没有权限到站点包。
  • 允许使用python安装在室外分布在这里,你可以使用站点包。
分类:蟒蛇 时间:2013-08-06 人气:0
本文关键词: 蟒蛇
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.597 (s). 9 q(s)