2012-02-12 95 views
5

我可以使用Python 2.6中的Python 2.7模块吗?或者做些什么来达到相同的效果?我可以使用Python 2.6中的Python 2.7子流程模块吗?

我仅限于使用Python 2.6,但在Python 2.6提供的subprocess模块中存在issue。这在Python 2.7中得到了修复。我很好奇,如果我使用点(或等效)来操纵这个问题来暂时避开缺陷,直到升级一天。我会如何去做这件事?

+3

有什么错误?可能有一种解决方法比试图混合Python版本更简单(通常这是不可能的)。 – 2012-02-12 18:26:41

+0

“subprocess”完全是用Python编写的。在Windows上,还有一个[用C写的部分](http://hg.python.org/cpython/file/e0c353a43c7d/PC/_subprocess.c)。 – 2012-02-12 18:32:20

+0

无赖。我指的是这个问题:http://bugs.python.org/issue9127(更新后的问题)。 – sholsapp 2012-02-12 18:43:47

回答

2

是的,通常。 2.6和2.7之间的差别不是很大,因为2.7应该是2.6和3.0之间的桥梁。因此,大多数2.7版本的Python模块都可以在这两个版本中工作(通常2.6版本比3.0版本更好)。

当然,知道答案的唯一可靠途径就是试试!

编辑:要说清楚,如果您有选择,我不建议您这样做。 仅仅因为一个模块中的Python bug而绕开Python安装是一个坏主意。

+0

我想我的问题是,如何实现这一目标?我不太熟悉Python包装,因为我还想要。 – sholsapp 2012-02-12 18:57:09

+0

只需按照您在Python 2.7上的方式安装包。通常是'/usr/bin/python2.7 setup.py install' - >'/usr/bin/python2.6 setup.py install'。唯一的区别是您调用来安装模块的Python解释器。某些模块可能会有额外的安装说明,为此您必须弄清楚或发布相关模块的名称(如果您在安装时遇到问题,则可能需要另外提问) – 2012-02-12 18:59:45

+1

如果您是使用'pip'安装软件包,可以使用'--environment =/usr/bin/python2.6'或'--environment =/path/to/environment'指定Python环境来安装软件包。 – 2012-02-12 19:02:08

1

如果你真的想留在Python 2.6中,也希望修复这个bug,我可能会建议从源代码编译的Python 2.6,但也 2.7应用相关的bug修复代码为subprocess模块。

您将最终得到一个自定义的Python 2.6版本。当然,如果你因为无法安装任何不同的版本而停留在标准2.6版上,那么这将无济于事。