2011-07-26 9 views
1

私はpysvnを使用するツールを開発中です。これまでのツールの作者にはpysvn1.4が含まれていたため、pysvnをダウンロードしたりインストールしたりすることなく、Pythonを使用していたマシンでも使用できます。pythonスクリプトにpysvnをインクルードしてリンクするにはどうすればいいですか?

pysvn 1.6を使用するようにツールを更新したいと思います。

これまで私が行ってきたことは、マシンにpysvn1.6がインストールされていて、/ usr/lib/python/site-package/pysvnディレクトリのpysvnフォルダをソースファイルのディレクトリに移動したようです以前の著者がそれをした方法です。

assorted.py files 
assorted.pyc files 
pysvn folder that includes old version of pysvn 
    __init__.py 
    __init__.pyc 
    __pysvn.so 

をしかし、私はプログラムを実行すると、私はこのエラーを取得する:次のように

現在のファイルシステム構造は、この(以前に有効な)コードに由来

Traceback (most recent call last): 
    File "slocmine.py", line 195, in ? 
    sys.exit(main(sys.argv[0:])) 
    File "slocmine.py", line 113, in main 
    logjsonstr = pyslocd_svn_log.doit(svn, url) 
    File "https://stackoverflow.com/users/users1/chindes/newsloc/svn/lib/python2.4/pyslocd_svn_log.py", line 114, in doit 
    revision=pysvn_rev_head, depth=pysvn.depth.empty) 
AttributeError: 'module' object has no attribute 'empty' 

repoinfo = svn.info2(repoPathUrl, 
    revision=pysvn_rev_head, depth=pysvn.depth.empty) 

これは、モジュールを正しくインポートしていないことを示していますが、間違っている。

編集:pysvnのバージョン1.6.2とバージョン1.6.15のSubversionが明らかに互換性がないようです。

+0

あなたは 'python setup.py install'のような何かを使うことはできません。 –

答えて

3

pysvnは間​​違いなくビルドするための見知らぬモジュールの1つです。これが私がpysvnをうまく構築して使用した方法です。環境変数TARGは、Pythonのインストールディレクトリに設定されています。あなたはまだ古いモジュールが利用可能な場合は

cd ~ 
wget http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.5.tar.gz 
tar zxvf pysvn-1.7.5.tar.gz 
cd pysvn-1.7.5/Source 
python setup.py backport 
python setup.py configure --apr-inc-dir=/usr/include/apr-1 
make 
cd ../Tests 
make 
cd ../Sources 
mkdir -p $TARG/lib/python2.7/site-packages/pysvn 
cp pysvn/__init__.py $TARG/lib/python2.7/site-packages/pysvn 
cp pysvn/_pysvn_2_7.so $TARG/lib/python2.7/site-packages/pysvn 
cd ~ 

、なぜそれを再度実行してみますが、例外が発生したファイル内の同じ場所でいくつかのデバッグ文を追加していません。 diffを使用すると、コードが変更された可能性があるため、コンテキスト内の適切な場所を見つけることができます。一方、ライブラリのバグかもしれないので、最新バージョン(上記のスクリプトを参照してください)を試すことができます。

+0

ありがとう、私が1.6.2を使用した理由は、yum経由でインストールできるからです。 1.7.5をインストールするときにこのエラーが発生します。 'py2-svn1.6.log test-01.unix.new.log 情報:test-01.unix.known_good-py2-svn1.6.logの比較 Info:test-01.unix.newに対して。ログ エラー:テストに失敗しました - test-01.unix.new.log エラー:------------------------------- ------------------------------------------------- エラー:結果(8)を挿入 /テスト/ testroot-01 エラー:--------------------------------- ------------------------------------------- make:*** [ test-01.unix.new.log.clean] Error 1' – chindes

+0

@chindes:あなたのバージョンのpysvnがSubversionと同期していないため、エラーがあると思います。私はこのPYSVNを使用しましたhttp://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.5.tar.gz –

+0

あなたは私のpysvnが私のSVNバージョンと同期していないという点で正しいと思います。私はバージョン1.6.2のpysvnと1.6.15のsubversionを持っていますが、明らかに互換性がありません。しかし、あなたのバージョンのpysvnを試したとき、私はあなたに示したエラーを受けました。 – chindes

関連する問題