如何访问不同的python模块版本?

时间:2013-03-20 16:35:34

标签: python module version

所以我正在使用共享计算机。它是整个部门计算的主力。我们遇到的问题是控制导入模块的版本。以Biopython为例。有些人对旧版本的biopython有要求 - 1.58。而其他人对最新的biopython有要求 - 1.61。我如何并排安装两个版本的模块,以及如何专门访问特定版本。我问,因为有时这些api会改变并打破其他人的旧脚本(或者他们期望某些功能不再存在)。

我知道可以在本地(即每个用户)安装模块,并专门将python指向该模块。还有另一种方法来处理这个问题吗?或者每个人都必须在使用之前创建导出PYTHONPATH?

2 个答案:

答案 0 :(得分:2)

我不确定是否可以更改给定模块的有效安装版本。鉴于我对进口和网站包如何运作的理解,我倾向于否。

您是否考虑过使用virtualenv

使用virtualenv,您可以创建多个共享环境 - 一个用于biopython 1.58,另一个用于1.61,另一个用于您需要的任何其他特殊情况。它们不需要被锁定到特定用户,因此虽然它会占用比您想要的更多的空间,但它可能比拥有自己的python环境的每个人占用更少的空间。

答案 1 :(得分:1)

听起来你在做科学计算。您应该使用Anaconda,并特别注意conda工具documented here

Conda尽可能使用硬链接以避免复制相同的文件。它还以比virtualenv(例如VTK上的virtualenv chokes)更好的方式管理非python二进制模块。