我可以使用Python 2.6中的Python 2.7模块吗?或者做些什么来达到相同的效果?我可以使用Python 2.6中的Python 2.7子流程模块吗?
我仅限于使用Python 2.6,但在Python 2.6提供的subprocess
模块中存在issue。这在Python 2.7中得到了修复。我很好奇,如果我使用点(或等效)来操纵这个问题来暂时避开缺陷,直到升级一天。我会如何去做这件事?
我可以使用Python 2.6中的Python 2.7模块吗?或者做些什么来达到相同的效果?我可以使用Python 2.6中的Python 2.7子流程模块吗?
我仅限于使用Python 2.6,但在Python 2.6提供的subprocess
模块中存在issue。这在Python 2.7中得到了修复。我很好奇,如果我使用点(或等效)来操纵这个问题来暂时避开缺陷,直到升级一天。我会如何去做这件事?
Etienne Perot建议使用Python 3.2子进程backport,可在http://code.google.com/p/python-subprocess32/处获得,而不是绕过Python安装。
这让我将模块安装到我的虚拟环境的站点包中,并使用http://hg.python.org/cpython/rev/767420808a62修补子进程代码以修复上述问题。之后,一个简单的import subprocess32 as subprocess
修复了这个问题。
是的,通常。 2.6和2.7之间的差别不是很大,因为2.7应该是2.6和3.0之间的桥梁。因此,大多数2.7版本的Python模块都可以在这两个版本中工作(通常2.6版本比3.0版本更好)。
当然,知道答案的唯一可靠途径就是试试!
编辑:要说清楚,如果您有选择,我不建议您这样做。 仅仅因为一个模块中的Python bug而绕开Python安装是一个坏主意。
我想我的问题是,如何实现这一目标?我不太熟悉Python包装,因为我还想要。 – sholsapp 2012-02-12 18:57:09
只需按照您在Python 2.7上的方式安装包。通常是'/usr/bin/python2.7 setup.py install' - >'/usr/bin/python2.6 setup.py install'。唯一的区别是您调用来安装模块的Python解释器。某些模块可能会有额外的安装说明,为此您必须弄清楚或发布相关模块的名称(如果您在安装时遇到问题,则可能需要另外提问) – 2012-02-12 18:59:45
如果您是使用'pip'安装软件包,可以使用'--environment =/usr/bin/python2.6'或'--environment =/path/to/environment'指定Python环境来安装软件包。 – 2012-02-12 19:02:08
如果你真的想留在Python 2.6中,也希望修复这个bug,我可能会建议从源代码编译的Python 2.6,但也从 2.7应用相关的bug修复代码为subprocess
模块。
您将最终得到一个自定义的Python 2.6版本。当然,如果你因为无法安装任何不同的版本而停留在标准2.6版上,那么这将无济于事。
有什么错误?可能有一种解决方法比试图混合Python版本更简单(通常这是不可能的)。 – 2012-02-12 18:26:41
“subprocess”完全是用Python编写的。在Windows上,还有一个[用C写的部分](http://hg.python.org/cpython/file/e0c353a43c7d/PC/_subprocess.c)。 – 2012-02-12 18:32:20
无赖。我指的是这个问题:http://bugs.python.org/issue9127(更新后的问题)。 – sholsapp 2012-02-12 18:43:47