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

如何访问不同的python模块版本?,python,module,version,Python,Module,Version,所以我在一台共享计算机上工作。这是整个部门计算的一项工作。我们遇到的问题是控制导入模块的版本。以Biopython为例。有些人需要旧版本的biopython-1.58。还有一些人对最新的biopython-1.61有要求。如何将两个版本的模块并排安装,以及如何专门访问特定版本。我这样问是因为有时这些API会改变并打破其他人的旧脚本(或者他们希望某些功能不再存在) 我知道可以在本地(即每个用户)安装模块,并专门将python定向到该模块。还有别的办法吗?或者每个人在使用之前都必须创建导出PYTHO

所以我在一台共享计算机上工作。这是整个部门计算的一项工作。我们遇到的问题是控制导入模块的版本。以Biopython为例。有些人需要旧版本的biopython-1.58。还有一些人对最新的biopython-1.61有要求。如何将两个版本的模块并排安装,以及如何专门访问特定版本。我这样问是因为有时这些API会改变并打破其他人的旧脚本(或者他们希望某些功能不再存在)


我知道可以在本地(即每个用户)安装模块,并专门将python定向到该模块。还有别的办法吗?或者每个人在使用之前都必须创建导出PYTHONPATH吗?

我不确定是否可以更改给定模块的活动安装版本。考虑到我对导入和站点包如何工作的理解,我倾向于否定

您是否考虑过使用
virtualenv


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

听起来您在进行科学计算。您应该使用并特别注意
conda
工具


康达尽可能使用硬链接来避免相同文件的副本。它还以比virtualenv更好的方式管理非python二进制模块(例如,virtualenv在VTK上阻塞)。

将允许您在本地目录中安装任何需要的模块。它似乎可以解决您的问题,尽管这是以牺牲磁盘空间为代价的。与安装多个单独的python解释器相比,virtualenv将使用非常少的额外空间。还有“模块”系统。在并行环境中,设置不同的编译器等是很常见的。我对这个“模块”系统很好奇。你到底指的是什么?