4

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

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

4

2 回答 2

2

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

您是否考虑过使用virtualenv

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

于 2013-03-20T16:40:48.773 回答
1

听起来你在做科学计算。您应该使用Anaconda并特别记下该conda工具,记录在此处

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

于 2013-03-20T16:46:18.470 回答