2012-05-14 15 views
6

In Subversion di documentation c'è un esempio di utilizzo di Subversion da PythonPython Subversion libreria wrapper

#!/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) 

Quando eseguo questo codice ottengo un errore di importazione:

$ 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 

Questo vuol dire che mi manca il libreria svn. Ho provato ad installare il pacchetto, ma il gestore di pacchetti Python non riesce a trovarlo.

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

Quindi, come si installa questa libreria?

+1

Non è forse un po 'strano che si lamenta 'svn.core' ma non si tratta di' svn.fs' (quest'ultimo viene prima nella lista delle importazioni)? – NPE

+1

Mi hai catturato, ho copiato e incollato l'errore dall'esecuzione di 'import svn.core' al prompt interattivo –

risposta

9

La libreria a cui fa riferimento questa documentazione è i wrapper basati su SWIG che creano e spediscono con Subversion stesso. Pertanto, se il pacchetto del sistema operativo è subversion, cercare un pacchetto subversion-python da spedire insieme. Se stai creando subversion dalla sorgente, ti consigliamo di utilizzare l'opzione di configurazione --with-python per i binding da costruire insieme.

Un'alternativa (con un'API completamente diversa) è the 3rd-party wrapper pysvn. Questi sono meglio documentati e sono più facili da usare, ma sono anche meno efficienti in termini di prestazioni di runtime (non implementano tutte le capacità di riutilizzo della connessione e tali collegamenti "ufficiali" sottodimensionati).

+0

Ahimè, il mio sistema operativo è Windows in questo momento, non ha un gestore di pacchetti. Sono felice di usare 'pysvn' se riesci a collegarmi alla documentazione. –

+0

@MattHickford Aggiornato con un collegamento a pysvn. –

+1

Grazie trovato la documentazione elusiva http://pysvn.tigris.org/docs/pysvn_prog_guide.html http://pysvn.tigris.org/docs/pysvn_prog_ref.html –

2

È necessario installare subversion-python per poter importare le classi.

Nel mio caso (Fedora)

sudo yum install subversion-python 

Apt-get dovrebbe avere più o meno la stessa