我可以在Python 2.6中使用Python 2.7的subprocess模块吗?

6 投票
3 回答
3388 浏览
提问于 2025-04-17 12:54

我可以在Python 2.6中使用Python 2.7的模块吗?或者有没有其他方法可以达到同样的效果?

我只能使用Python 2.6,但在Python 2.6的subprocess模块中有一个问题,这个问题在Python 2.7中已经修复了。我想知道是否可以通过使用pip(或者类似的工具)来暂时绕过这个错误,直到有一天能升级。那我该怎么做呢?

3 个回答

1

如果你真的想继续使用Python 2.6,但又想修复这个bug,我建议你可以从源代码编译Python 2.6,同时把2.7版本中相关的bug修复代码应用到subprocess模块上。

这样你就会得到一个定制版的Python 2.6。当然,如果你只能使用标准的2.6版本,无法安装其他任何版本,那这个方法就没什么用处了。

3

是的,通常情况下是这样的。Python 2.6和2.7之间的差别不大,因为2.7是为了连接2.6和3.0而设计的。因此,大部分适用于2.7的Python模块在这两个版本中都能正常工作(通常在2.6上表现得比在3.0上更好)。

当然,想要确定答案的唯一可靠方法就是亲自试试看!

编辑:为了明确,我并不建议你这样做,如果你有选择的话。因为一个模块中的Python错误而随意修改Python的安装是个坏主意。

1

Etienne Perot 建议使用一个可以在 Python 3.2 上运行的 subprocess 的替代版本,这个版本可以在 http://code.google.com/p/python-subprocess32/ 找到,而不是去修改 Python 的安装。

这样我就可以把这个模块安装到我的虚拟环境的 site-packages 目录里,并且用 http://hg.python.org/cpython/rev/767420808a62 的代码来修复问题中提到的 bug。之后,只需要简单地用 import subprocess32 as subprocess 就解决了这个问题。

撰写回答