2012-05-14 12 views
6

En Subversion de documentation hay un ejemplo del uso de Subversion desde Pythonbiblioteca envoltorio de 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) 

Cuando ejecuto el código me sale un error de importación:

$ 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 

Esto significa que me falta la biblioteca svn. Intenté instalar el paquete, pero el administrador de paquetes de Python no puede encontrarlo.

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

Entonces, ¿cómo instalo esta biblioteca?

+1

¿No es un poco extraño que se queja de 'svn.core' pero no sobre' svn.fs' (este último es el primero en la lista de importación)? – NPE

+1

Me atrapaste, copié y pegué el error al ejecutar 'import svn.core' en el prompt interactivo –

Respuesta

9

La biblioteca a la que se hace referencia en esta documentación son los contenedores basados ​​en SWIG que se compilan y se envían con Subversion. Por lo tanto, si el paquete de su sistema operativo es subversion, busque un paquete subversion-python para enviar junto con él. Si está creando subversión desde el origen, querrá usar la opción de configuración --with-python para los enlaces que se construirán al costado.

Una alternativa (con una API bastante diferente) es the 3rd-party wrapper pysvn. Estos están mejor documentados y son más fáciles de usar, pero también son menos eficientes en términos de rendimiento en el tiempo de ejecución (no implementan todas las capacidades de reutilización de la conexión y otras de las vinculaciones "oficiales" no documentadas).

+0

¡Ay !, mi sistema operativo es Windows ahora mismo, no tiene un administrador de paquetes. Me complace usar 'pysvn' si puede vincularme a la documentación. –

+0

@MattHickford Actualizado con un enlace a pysvn. –

+1

Gracias encontró la escurridiza documentación http://pysvn.tigris.org/docs/pysvn_prog_guide.html http://pysvn.tigris.org/docs/pysvn_prog_ref.html –

2

Necesita instalar subversion-python para poder importar las clases.

En mi caso (Fedora)

sudo yum install subversion-python 

Apt-get debería tener más o menos la misma