0

我不确定是使用从官方网站下载的 CherryPy,还是在我的发行版包管理器中找到的版本。

如果我使用官方下载,如果我需要在开发环境和实时环境之间移动,可移植性将不再是问题,并且我保证两个系统上的版本相同。另一方面,如果我让我的发行版的包管理器来处理它,那么我就不必担心保持 CherryPy 的更新,我也不需要将它保存在源代码控制中。允许我的包管理器处理更新的另一个潜在缺点是,在正式软件发布和软件进入存储库之间通常存在相当长的延迟。

什么是公认的做法?

4

2 回答 2

1

对于我从事的每个 python 项目,我都会创建一个名为的文件,该文件setup-env.sh用于构建本地虚拟环境。这包含在源代码中。例如,在最近的一个项目中:

#!/bin/bash

virtualenv --python=python3.2 env
source env/bin/activate
easy_install cherrypy
easy_install pytache
easy_install sql_alchemy
easy_install stagger
easy_install nose
easy_install pystache

这创建了一个项目独有的环境,其中包含最新的稳定版本,并且易于复制。

在进行项目之前,请执行以下操作:

source env/bin/activate

修改你的PATHPYTHONPATH正确的。

如果你没有easy_install可用的,你需要安装 distutils 包或类似的包。

这是最好的解决方案,因为:

  • 您可以使用最新的稳定版本,而不是任何发行版打包
  • 您使用最小的、记录在案的软件包集(您不会“意外”使用为另一个项目安装的软件包)
  • 在另一台机器上重新创建很容易
  • 如果您更新发行版,则很容易重新创建
  • 很容易扩展以指定特定的版本号 ( easy_install cherrypy==3.2.0)
  • 指定特定的 python 版本很容易
于 2012-08-29T23:26:23.950 回答
0

当您使用 gentoo 时,我会使用在服务器和工作站之间共享的自定义覆盖。(见http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3&chap=5

在您的覆盖中,如果您需要更新版本的cherrypy,您可以随时将其插入其中并将其安装在您的工作站上,然后在需要升级时,从您的服务器中取消屏蔽它。

由于它是您的叠加层,因此您无需等待官方包装。要么你自己调整 ebuild(通常 90% 的时间只是重命名它以提升版本),要么你可以从你的主题上更高级的覆盖中复制它,比如 python 覆盖(现在被命名为进度)http ://code.google.com/p/gentoo-progress/为您的示例。

于 2012-08-29T22:17:27.593 回答