咱们的地图微任务之前入库的一部分数据,被发现有一些小问题,需要做一下修复。当然啦,简单的修复一个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/