我不确定是使用从官方网站下载的 CherryPy,还是在我的发行版包管理器中找到的版本。
如果我使用官方下载,如果我需要在开发环境和实时环境之间移动,可移植性将不再是问题,并且我保证两个系统上的版本相同。另一方面,如果我让我的发行版的包管理器来处理它,那么我就不必担心保持 CherryPy 的更新,我也不需要将它保存在源代码控制中。允许我的包管理器处理更新的另一个潜在缺点是,在正式软件发布和软件进入存储库之间通常存在相当长的延迟。
什么是公认的做法?
对于我从事的每个 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
修改你的PATH
和PYTHONPATH
正确的。
如果你没有easy_install
可用的,你需要安装 distutils 包或类似的包。
这是最好的解决方案,因为:
easy_install cherrypy==3.2.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/为您的示例。