我可以在Python 2.6中使用Python 2.7的subprocess模块吗?
我可以在Python 2.6中使用Python 2.7的模块吗?或者有没有其他方法可以达到同样的效果?
我只能使用Python 2.6,但在Python 2.6的subprocess
模块中有一个问题,这个问题在Python 2.7中已经修复了。我想知道是否可以通过使用pip(或者类似的工具)来暂时绕过这个错误,直到有一天能升级。那我该怎么做呢?
3 个回答
如果你真的想继续使用Python 2.6,但又想修复这个bug,我建议你可以从源代码编译Python 2.6,同时把2.7版本中相关的bug修复代码应用到subprocess
模块上。
这样你就会得到一个定制版的Python 2.6。当然,如果你只能使用标准的2.6版本,无法安装其他任何版本,那这个方法就没什么用处了。
是的,通常情况下是这样的。Python 2.6和2.7之间的差别不大,因为2.7是为了连接2.6和3.0而设计的。因此,大部分适用于2.7的Python模块在这两个版本中都能正常工作(通常在2.6上表现得比在3.0上更好)。
当然,想要确定答案的唯一可靠方法就是亲自试试看!
编辑:为了明确,我并不建议你这样做,如果你有选择的话。因为一个模块中的Python错误而随意修改Python的安装是个坏主意。
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
就解决了这个问题。