在没有root权限的测试机上安装MySQL-Python驱动

咱们的地图微任务之前入库的一部分数据,被发现有一些小问题,需要做一下修复。当然啦,简单的修复一个SQL就搞定了,但这回的问题比较纠结。于是我打算写一些Python脚本先做些分析。

悲催的是,测试机的操作系统版本相当老(反正很老就是了,感觉不会再爱的那种),神马apt-get,yum,brew之类的命令一个都没有,也没有root权限。对于我这样习惯于sudo+brew的人来说,就比较纠结了...

由于咱们木有root权限,那只好把东西都装到自己的目录下。比如我在我名下的目录里创建一个python子目录,用来安装Python的库,下面记为<my python>

setuptools 是一个很有的Python包管理工具,MySQL-Python依赖于它。看了下,setuptools是没有装的,不过Python的版本2.7.2倒是挺新的。

安装setuptools之前,需要把<my python>目录添加到PYTHONPATH中,否则install那步就会报错:

1
2
3
nano ~/.bash_profile
# Add the line blow
# export PYTHONPATH=<my python>/lib/python2.7/site-packages

注意:这个目录(<my python>/lib/python2.7/site-packages)会在安装时自动创建,不必手动。

下载setuptoolsd的源码,然后就可以装了:

1
2
3
4
5
cd <my python>
tar zxvf setuptools-1.0. tar .gz
cd setuptools-1.0
python setup.py build
python setup.py install --prefix=<my python>


下载MySQL-Python的源码:

1
2
3
4
5
cd <my python>
tar zxvf MySQL-python-1.2.3. tar .gz
cd MySQL-python-1.2.3
python setup.py build
python setup.py install --prefix=<my python>

可以试着跑一下...

1
2
3
4
5
6
7
>>> import MySQLdb
Traceback (most recent call last):
   File "<stdin>" , line 1 , in <module>
   File "build/bdist.linux-x86_64/egg/MySQLdb/__init__.py" , line 19 , in <module>
   File "build/bdist.linux-x86_64/egg/_mysql.py" , line 7 , in <module>
   File "build/bdist.linux-x86_64/egg/_mysql.py" , line 6 , in __bootstrap__
ImportError: libmysqlclient.so. 16 : cannot open shared object file : No such file or directory

这就是我遇到的很悲催的情况..找不到libmysqlclient.so.16这个库...

搜了下,通常解决办法是在/etc/ld.so.conf中加一项。但是,权限问题,你懂的...

所以,这个法子行不通,还是需要改bash_profile,加入这个库所在的目录:

1
2
3
nano ~/.bash_profile
# Add the line blow
# export LD_LIBRARY_PATH=<my mysql lib>

再试试导入MySQLdb,终于Ok了。


转自:http://www.xukailun.me/article/218/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值