我该如何修复这个Python脚本?

时间:2012-10-12 19:52:01

标签: python cvs2svn

我正在尝试使用cvs2svn将CVS存储库转换为Git,并遵循指示on this page。我到了第7步,但是在运行git-move-refs.py时遇到错误:

Traceback (most recent call last):
  File "../../cvs2svn-trunk/contrib/git-move-refs.py", line 23, in ?
    from subprocess import Popen, PIPE, call
ImportError: No module named subprocess

作为参考,这是脚本显示的内容:

usage = 'USAGE: %prog [options]'

import sys
import optparse
from subprocess import Popen, PIPE, call

我不是Python专家,但是从浏览网页看,子进程看起来像是一个标准模块,对吧?我正在使用从2.6.3版本的源代码构建的Python安装。这个脚本有什么用?

1 个答案:

答案 0 :(得分:2)

我猜你在你的发行版中有/usr/bin/python的旧版本(2.4之前版本),你编译的Python 2.6就在其他地方(比如/usr/local/bin/python)。您在/usr/bin之前的路径上有Python 2.6可执行文件,因此当您从命令行执行python时,您将获得Python 2.6。

但是,查看cvs2svn source code, git-move-refs.pyinterpreter line是硬编码为

#!/usr/bin/python

而不是#!/usr/bin/env python,这意味着当您运行脚本时,它会使用旧的Python。

作为一种解决方法,通过将脚本传递给Python 2.6解释器来运行脚本:

user@host$ python /path/to/cvs2svn/contrib/git-move-refs.py
相关问题