2012-05-14 6 views
6

Subversionを使用する例は、PythonのPython Subversionのラッパー・ライブラリー

からあります
#!/usr/bin/python 
import svn.fs, svn.core, svn.repos 

def crawl_filesystem_dir(root, directory): 
    """Recursively crawl DIRECTORY under ROOT in the filesystem, and return a list of all the paths at or below DIRECTORY.""" 

    # Get the directory entries for DIRECTORY. 
    entries = svn.fs.svn_fs_dir_entries(root, directory) 

私はこのコードを実行すると、私はインポートエラーを取得:

$ python crawl.py 
Traceback (most recent call last): 
    File "crawl.py", line 7, in <module> 
    import svn.fs, svn.core, svn.repos 
ImportError: No module named svn.fs 

は、これは私が欠けていることライブラリsvn。私はパッケージをインストールしようとしましたが、Pythonパッケージマネージャーはそれを見つけることができません。

$ pip install svn 
Downloading/unpacking svn 
    Could not find any downloads that satisfy the requirement svn 
No distributions at all found for svn 

このライブラリをインストールするにはどうすればよいですか?

+1

が、それは少し奇妙ではないです多かれ少なかれを持つべきですsvn.fs'(後者はインポートリストの最初のものです)? – NPE

+1

インタラクティブプロンプトで 'import svn.core'を実行してエラーをコピーして貼り付けました –

答えて

9

このドキュメントで参照されるライブラリは、Subversion自身でビルドして出荷するSWIGベースのラッパーです。したがって、オペレーティングシステムのパッケージがsubversionの場合は、subversion-pythonパッケージを同梱してください。ソースからSubversionをビルドする場合は、バインドを一緒に構築するために--with-python configureオプションを使用することをお勧めします。

代替(かなり異なるAPIを使用)はthe 3rd-party wrapper pysvnです。これらはより詳細に文書化されており、使い易いですが、ランタイムパフォーマンスの点でも効率が悪いです(すべての接続再利用機能や、不十分な "公式"バインディングなど)。

+0

私のOSはWindowsですが、パッケージマネージャはありません。あなたが私をドキュメントにリンクさせることができるなら、 'pysvn'を使ってうれしく思います。 –

+0

@MattHickford pysvnへのリンクで更新されました。 –

+1

ありがとうございました。わかりにくいドキュメントhttp://pysvn.tigris.org/docs/pysvn_prog_guide.html http://pysvn.tigris.org/docs/pysvn_prog_ref.html –

2

クラスをインポートできるようにするには、subversion-pythonをインストールする必要があります。私の場合は

(Fedoraの)

sudo yum install subversion-python 

apt-getは、それは ``についてsvn.core`文句はありませんと同じ