2011-07-26 41 views
1

我正在使用pysvn的工具。該工具的前作者包括pysvn1.4,因此它可以在任何具有python的機器上使用,而無需下載或安裝pysvn。如何在我的Python腳本中包含並鏈接pysvn?

我想更新使用pysvn 1.6的工具。

我到目前爲止所做的是在我的機器上安裝了pysvn1.6,並將pysvn文件夾從我的/ usr/lib/python/site-package/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) 

這表明我沒有正確導入模塊,雖然我可能 是錯的。

編輯:似乎我有版本1.6.2的pysvn和版本1.6.15的顛覆,這顯然不兼容。

+0

任何你不能使用'python setup.py install'的理由? –

回答

3

pysvn絕對是構建的陌生人模塊之一。這就是我成功構建和使用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 Info:比較test-01.unix.known_good-py2-svn1.6.log Info:針對test-01.unix.new。日誌 錯誤:測試失敗 - test-01.unix.new.log 錯誤:------------------------------- ------------------------------------------------- 錯誤:結果(8)插入/Tests/testroot-01 錯誤:--------------------------------- ------------------------------------------- make:*** [ test-01.unix.new.log.clean]錯誤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的顛覆,顯然不兼容。但是,當我嘗試使用pysvn的版本時,我收到了錯誤信息,並顯示給您。 – chindes

相關問題