安装带有旧依赖的旧python模块



我一直在尝试安装一个名为obittools (https://pythonhosted.org/OBITools/welcome.html, https://anaconda.org/bioconda/obitools)的python模块,该模块专为python 2.7设计。除了安装策略之外,它总是会调用一个名为"get- obittools .py"的脚本(https://pythonhosted.org/OBITools/_downloads/get-obitools.py)。但是,即使从python 2.7调用'get- obittools .py'脚本,也会尝试安装最新的依赖项。通过这样做,安装将被困在一个无限循环中,因为它将无法安装某些依赖项,通常是由于python语法在最新的python版本中更改,例如:

print(error, file=sys.stderr)
^
SyntaxError: invalid syntax

我必须说我不是一个python的重度用户。因此,我可能在这里遗漏了一些基本的东西。然而,从python2到python3的基本语法变化对我来说真的很奇怪。如此巨大的变化会在某些时候破坏旧模块,这似乎是合乎逻辑的。事实上,如上所示,obittools可能就是这种情况。

总而言之,是否有可能强制obittools安装在安装时搜索旧的依赖项(即在python 2.7下工作的版本)?

有一个非常简单和不合逻辑的hack来解决这个问题。您可以简单地从get-obitools.py的源代码中删除参数名称。
例如你的代码将变成

print(error, sys.stderr)

这不是一个很大的变化,这是python 2的基本变化。X print不是一个函数,而是在python 3中。X是一个函数

相关内容

  • 没有找到相关文章

最新更新