【Python】python2.7安装pysvn
wget最新的版本地址自己修改
1、编译安装apr、apr-util
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.5.2.tar.gz
./configure --prefix=/usr/local/apr
make & make install
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.5.4.tar.gz
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make & make install
2、如果没有安装scons和serf需要安装,否则会报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pysvn._pysvn_2_7.ClientError: Unrecognized URL scheme for 'https://svn.xxx/'
参考:http://blog.uouo123.com/post/402.html
原因在svn1.8版本之前按照原来的安装方法是可以加载到dav的模块,但是,1.8版本以后,需要serf软件包支持访问 http 协议的版本库,不然就会报错. serf需要用scons来编译安装,所以先安装下scons
wget http://pkgs.fedoraproject.org/repo/pkgs/scons/scons-2.3.6.tar.gz/9c6a1c3c716cbe5f16515f163c91d928/scons-2.3.6.tar.gz
tar -zxvf scons-2.3.6
cd scons-2.3.6
/usr/local/bin/python2.7 setup.py install
wget https://archive.apache.org/dist/serf/serf-1.3.8.zip
unzip serf-1.3.8.zip
cd serf-1.3.8
ln -s /usr/local/apr/bin/apr-1-config /usr/bin/apr-1-config
ln -s /usr/local/apr-util/bin/apu-1-config /usr/bin/apu-1-config
scons PREFIX=/usr/local/serf
scons install
scons -c
3、编译安装sqlite
wget http://www.sqlite.org/2016/sqlite-autoconf-3110100.tar.gz
./configure --prefix=/usr/local/sqlite3
make && make install
指定路径可以避免svn安装时候出现与原环境sqlite版本冲突的问题:
Traceback (most recent call last):
File "<stdin>", line , in <module>
pysvn._pysvn_2_7.ClientError: Couldn't perform atomic initialization
SQLite compiled for 3.11., but running with 3.6.
4、编译安装subversion :
参考:https://teddysun.com/243.html (这里编译安装)
wget https://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.9.3.tar.gz
./configure --with-serf=/usr/local/serf --prefix=/usr/local/subversion --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-sqlite=/usr/local/sqlite3/
make && make install
4、编译安装pysvn:
wget http://tigris.org/files/documents/1233/49465/pysvn-1.8.0.tar.gz
cd pysvn-1.8.0/Source
/usr/local/bin/python2.7 setup.py configure --svn-bin-dir=/usr/local/subversion/bin --svn-inc-dir=/usr/local/subversion/include/subversion-1/ --svn-lib-dir=/usr/local/subversion/lib/ --apu-inc-dir=/usr/local/apr-util/include/apr-1/ --apr-inc-dir=/usr/local/apr/include/apr-1/ --apr-lib-dir=/usr/local/apr/lib/
make
编译完在Source路径下会生成pysvn
cp -r pysvn /你的python2.7路径/python2.7/site-packages/
5、安装完测试报错:
>>> import pysvn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pysvn/__init__.py", line 116, in <module>
raise ImportError( 'pysvn was built against newer (svn, apr, etc.) libraries then the ones installed on this system. %s' % str(e) )
ImportError: pysvn was built against newer (svn, apr, etc.) libraries then the ones installed on this system. /usr/local/subversion/lib/libsvn_delta-1.so.0: undefined symbol: apr_hash_this_key
分别执行ldd查看引用差异:
ldd /usr/local/subversion/lib/libsvn_delta-1.so.0
ldd pysvn/_pysvn_2_7.so
[root@test1 ~]# ldd /usr/local/subversion/lib/libsvn_delta-.so.
linux-vdso.so. => (0x00007fff2e747000)
libsvn_subr-.so. => /usr/local/subversion/lib/libsvn_subr-.so. (0x00007f1960ec9000)
libsqlite3.so. => /usr/lib64/libsqlite3.so. (0x00007f1960c2e000)
libaprutil-.so. => /usr/local/apr-util/lib/libaprutil-.so. (0x00007f1960a09000)
libexpat.so. => /usr/local/apr-util/lib/libexpat.so. (0x00007f19607e2000)
libapr-1.so.0 => /usr/local/apr/lib/libapr-1.so.0 (0x00007f19605ae000)
librt.so. => /lib64/librt.so. (0x00007f19603a6000)
libcrypt.so. => /lib64/libcrypt.so. (0x00007f196016f000)
libpthread.so. => /lib64/libpthread.so. (0x00007f195ff51000)
libz.so. => /lib64/libz.so. (0x00007f195fd3b000)
libc.so. => /lib64/libc.so. (0x00007f195f9a7000)
libdl.so. => /lib64/libdl.so. (0x00007f195f7a2000)
/lib64/ld-linux-x86-.so. (0x0000003510000000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f195f52b000) [root@test1 ~]# ldd /usr/local/lib/python2./site-packages/pysvn/_pysvn_2_7.so
linux-vdso.so. => (0x00007fff154b6000)
libsvn_client-.so. => /usr/local/subversion/lib/libsvn_client-.so. (0x00007f7eab298000)
libsvn_repos-.so. => /usr/local/subversion/lib/libsvn_repos-.so. (0x00007f7eab060000)
libsvn_wc-.so. => /usr/local/subversion/lib/libsvn_wc-.so. (0x00007f7eaada9000)
libsvn_fs-.so. => /usr/local/subversion/lib/libsvn_fs-.so. (0x00007f7eaab9e000)
libsvn_subr-.so. => /usr/local/subversion/lib/libsvn_subr-.so. (0x00007f7eaa878000)
libsvn_diff-.so. => /usr/local/subversion/lib/libsvn_diff-.so. (0x00007f7eaa662000)
libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00007f7eaa42b000)
libstdc++.so. => /usr/lib64/libstdc++.so. (0x00007f7eaa124000)
libm.so. => /lib64/libm.so. (0x00007f7ea9ea0000)
libgcc_s.so. => /lib64/libgcc_s.so. (0x00007f7ea9c8a000)
libc.so. => /lib64/libc.so. (0x00007f7ea98f5000)
libsvn_ra-.so. => /usr/local/subversion/lib/libsvn_ra-.so. (0x00007f7ea96e8000)
libsvn_ra_local-.so. => /usr/local/subversion/lib/libsvn_ra_local-.so. (0x00007f7ea94de000)
libsvn_fs_fs-.so. => /usr/local/subversion/lib/libsvn_fs_fs-.so. (0x00007f7ea928e000)
libsvn_fs_x-.so. => /usr/local/subversion/lib/libsvn_fs_x-.so. (0x00007f7ea903b000)
libsvn_fs_util-.so. => /usr/local/subversion/lib/libsvn_fs_util-.so. (0x00007f7ea8e39000)
libsvn_ra_svn-.so. => /usr/local/subversion/lib/libsvn_ra_svn-.so. (0x00007f7ea8c1b000)
libsvn_delta-.so. => /usr/local/subversion/lib/libsvn_delta-.so. (0x00007f7ea8a09000)
libz.so. => /lib64/libz.so. (0x00007f7ea87f3000)
libsqlite3.so. => /usr/lib64/libsqlite3.so. (0x00007f7ea8563000)
libaprutil-.so. => /usr/local/apr-util/lib/libaprutil-.so. (0x00007f7ea833e000)
libexpat.so. => /usr/local/apr-util/lib/libexpat.so. (0x00007f7ea8117000)
librt.so. => /lib64/librt.so. (0x00007f7ea7f0e000)
libcrypt.so. => /lib64/libcrypt.so. (0x00007f7ea7cd7000)
libpthread.so. => /lib64/libpthread.so. (0x00007f7ea7aba000)
libuuid.so. => /lib64/libuuid.so. (0x00007f7ea78b5000)
/lib64/ld-linux-x86-.so. (0x0000003510000000)
libdl.so. => /lib64/libdl.so. (0x00007f7ea76b0000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f7ea7439000)
apr文件差异:
_pysvn_2_7.so libapr-.so. => /usr/lib64/libapr-.so. (0x00007f7eaa42b000)
libsvn_delta-.so. libapr-.so. => /usr/local/apr/lib/libapr-.so. (0x00007f19605ae000)
备份/usr/lib64/libapr*
用编译完的apr/lib和apr-util/lib下的类文件替换/usr/lib64/下的原libapr*
pysvn报下面错误,需要在本地先用svn命令checkout,有个选项“p”,然后输入账号密码
pysvn._pysvn_2_7.ClientError: callback_ssl_server_trust_prompt required
svn报:
svn: error while loading shared libraries: libserf-.so.: cannot open shared object file: No such file or directory
ln -s /usr/local/serf/lib/libserf-1.so.1 /usr/lib64/libserf-1.so.1
【Python】python2.7安装pysvn的更多相关文章
- python解释器的安装;python2与python3同时在环境变量中时的解决方案
新文档 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,addres ...
- CentOS7保留默认Python版本并安装更新Python2和Python3共存
CentOS 7 默认的python版本是python2.7.5.因为yum依赖于默认的python版本的缘由,所以要先保留默认版本,并修改yum文件头部后,才能开始安装更新python2和pytho ...
- Python介绍、安装、使用
Python介绍.安装.使用 搬运工:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python语言介绍 说到Python语言,就不得不说一下它的创始人Guido van Rossu ...
- python - easy_install的安装和使用
为什么要装easy_install?正常情况下,我们要给Python安装第三方的扩展包,我们必须下载压缩包,解压缩到一个目录,然后命令行或者终端打开这个目录,然后执行python setup.py i ...
- python开发_mysqldb安装
在python的API上面,看到了MySQLdb,即python可以操作mysql数据库 接下来,我就把我这两天的工作给大伙絮叨絮叨: 准备条件: 1.MySQL-python-1.2.4b4.win ...
- Python环境的安装
参考官方文档 http://www.runoob.com/python/python-install.html Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上). 您需要下载适用 ...
- Python第一天 安装 shell 文件
Python第一天 安装 shell 文件 python里面一切都是对象 object 代码缩进:建议用四个空格来缩进,不要用tab键 安装 Linux自带python,windows需要下载m ...
- Win10下python3和python2同时安装并解决pip共存问题
特别说明,本文是在Windows64位系统下进行的,32位系统请下载相应版本的安装包,安装方法类似. 使用python开发,环境有Python2和 python3 两种,有时候需要两种环境切换使用,下 ...
- 【转】Win10下 python3和python2同时安装并解决pip共存问题
1.下载python3和python2 进入python官网,链接https://www.python.org/ 选择Downloads--->Windows,点击进入就可以看到寻找想要的pyt ...
随机推荐
- Java中二维数组与面向对象
1:二维数组(理解) (1)元素是一维数组的数组. (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C: ...
- HDU 3622 Bomb Game(二分+2SAT)
题意:有一个游戏,有n个回合,每回合可以在指定的2个区域之一放炸弹,炸弹范围是一个圈,要求每回合的炸弹范围没有重合.得分是炸弹半径最小的值.求可以得到的最大分数. 思路:二分+2SAT. 二分炸弹范围 ...
- 带卡扣的网卡接口使用小Tips,大家注意插拔网线的手法啊!
最近入手了一台X401,因为机器本身比较薄,它的网卡接口是有卡扣的,插网线的时候卡扣往下沉,这种设计应该有很多机型都采用了.但是大家有没有发现啊,这种接口的卡扣,时间长了,可能会有点松动.为了保护爱机 ...
- Linux平台屏幕录像工具RecordMyDesktop
如果你把Linux桌面效果自定义得很漂亮,是不是很想录下来和其他人一起分享呢?RecordMyDesktop完全满足需要,我期待这么一个软件很久了,以前也一直没有找到合适的. 以后每次发Ubuntu的 ...
- iar 错误解决
使用原来备份的项目可以正确烧写并进入调试状态,但使用新项目则报错,错误提示为Failed to load debugee: E:\工作\项目-农业\KaCES-F\Debug\Exe\kaces.tx ...
- Selenium定位一 --单个元素定位方法
Selenium-Webdriver 提供了强大的元素定位方法,支持以下三种方法. 单个对象的定位方法 多个对象的定位方法 层级定位 定位单个元素在定位单个元素时,selenium-webdriver ...
- ajax 中$.each(json,function(index,item){ }); 中的2个参数表示什么意思?
$.each(json,function(index,item)里面的index代表当前循环到第几个索引,item表示遍历后的当前对象,比如json数据为:[{"name":&qu ...
- 《统计推断(Statistical Inference)》读书笔记——第5章 随机样本的性质
有了前四章知识的铺垫,第五章进入了统计研究的正题——样本的研究.样本可以说是统计学研究中最基本的对象,样本的数学性质也是最重要的研究课题,统计学的一大任务就是从一大堆样本中提取出有价值的知识,正如对原 ...
- oracle 左边填充函数使用
左边填充 select lpad('abcde',10,'0') from dual; ==>00000abcde select lpad('abcde',10,'x') from dual;= ...
- 在VBA中调用winsock控件
如果系统没有Winsock控件的话,可以下载下面的控件MSWINSCK.OCX,然后将该文件复制到C:\Windows\System32目录下. 在VBE窗口中,从菜单"工具"-& ...