Python虚拟环境在源代码管理中
我创建了一个Python的虚拟环境,里面包含了所有与Django和Pylons相关的包。我在家里使用的是一台Ubuntu桌面电脑,同时在Windows笔记本上运行着一个Ubuntu虚拟机。
这两种操作系统都是Linux。我要在生产环境中使用的也是同样的环境,那个环境是Ubuntu服务器。
我想知道,是否可以把我的Python虚拟环境存储到版本控制中,并在Ubuntu桌面、笔记本上的Ubuntu虚拟机以及生产环境中的Ubuntu服务器上使用同样的文件?
3 个回答
你可以这样做,但其实并不需要为此使用“版本”控制。你需要先设置好你的环境。这是一次性的工作,设置好之后你就可以直接使用了。那为什么还要用版本控制呢?
如果你已经设置好了一个虚拟机(VM),你可以把它导出,这样其他人就可以复制它,自己启动一个包含所有安装内容的实例。VirtualBox和VMWare都支持VMDK格式的镜像,而Xen则有自己的一种虚拟机镜像格式。
不过,这可能不太适合用来搭建服务器。我比较喜欢使用Turnkey Linux提供的工具来搭建开发、测试和部署服务器。这些工具是经过预先配置的Ubuntu服务器,专门为某些应用程序准备的,比如Django、Rails、LAMP等。它们以Ubuntu LiveCD ISO文件的形式提供(用于安装),或者作为虚拟机的VMDK包,可以部署到亚马逊的EC2上。虽然在部署和测试你的代码之前,你可能还需要进一步自定义这个环境,但它比单纯的Linux服务器要方便得多。
你可以看看virtualenv这个工具。它可以帮助你建立一个工作环境,把你需要的所有软件包的列表“冻结”起来,这样别人就可以通过这个列表轻松地重建相同的环境。而且你还可以把这个需求列表放到版本控制里,这样其他人就能一步到位地获取并重建这个环境。