我正在尝试使用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安装。这个脚本有什么用?
答案 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.py
的interpreter line是硬编码为
#!/usr/bin/python
而不是#!/usr/bin/env python
,这意味着当您运行脚本时,它会使用旧的Python。
作为一种解决方法,通过将脚本传递给Python 2.6解释器来运行脚本:
user@host$ python /path/to/cvs2svn/contrib/git-move-refs.py