1

cvs2svn を使用して CVS リポジトリを Git に変換しようとしており、このページの指示に従っています。ステップ 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 の専門家ではありませんが、Web を閲覧していると、subprocess が標準モジュールのように見えますよね? バージョン 2.6.3 のソースからビルドされた Python インストールを使用しています。このスクリプトが機能するために欠けているものは何ですか?

4

1 に答える 1

2

ディストリビューションの に古いバージョン (2.4 より前) の Python が/usr/bin/pythonあり、コンパイルした Python 2.6 は別の場所 ( など/usr/local/bin/python) にあると思います。の前のパスに Python 2.6 実行可能ファイルがあるため、コマンドラインから/usr/bin実行すると Python 2.6 が取得されます。python

ただし、cvs2svnソースコードgit-move-refs.pyを見ると、のインタプリタ行はハードコードされています

#!/usr/bin/python

の代わりに#!/usr/bin/env python、スクリプトを実行すると古い Python が使用されることを意味します。

回避策として、スクリプトを Python 2.6 インタープリターに渡して実行します。

user@host$ python /path/to/cvs2svn/contrib/git-move-refs.py
于 2012-10-12T20:25:10.623 に答える